欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java琐碎笔记整理

程序员文章站 2022-06-19 11:58:38
数组长度为0和null不同, int 【】arr = new int【0】和 int 【】arr = null的区别是一个堆空间确实new了对象有地址,null是空引用string不可变,底层是char数组,所以string虽然是引用类型数据,但是复制赋值时,string a = “a”;string b = a;b = “change”;此时虽然ab同时指向原来a那一份的堆空间,但是修改了之后,因为不可改所以就重新开辟空间又存放这些数据,string的两种创建方式:直接赋值,从常量池中找,有了直接拿...

数组长度为0和null不同, int 【】arr = new int【0】和 int 【】arr = null的区别是一个堆空间确实new了对象有地址,null是空引用

string不可变,底层是char数组,所以string虽然是引用类型数据,但是复制赋值时,string a = “a”;string b = a;b = “change”;此时虽然ab同时指向原来a那一份的堆空间,但是修改了之后,因为不可改所以就重新开辟空间又存放这些数据,

string的两种创建方式:
直接赋值,从常量池中找,有了直接拿来用,没了就生成一个,
new的方式,这样就会在堆中实际创建一个对象,即使在常量池中有
面向接口编程,拿jdbc来举例,编写时我没直接按照接口来考虑,即接口就是定义了一些标准,也就是这样的接口具备一些通用的功能,那么不同人,不同厂家可以根据这些接口写各自不同的实现类,但是对于我们来说并不需要关心,实现类的具体细节,我们只需要利用多态,根据接口定义好的功能写出各种业务,逻辑,功能,而具体则根据我们用的是mysql,oracle,db2或者是其他各种的实现类的对象,我只需要把他们导进来,给接口赋值,就能用,需要更换只用把具体的实现类的对象换成别的就行,非常方便

单例模式,饿汉,懒汉(线程不安全,需要加同步代码块)
代理模式,工厂模式等设计模式,动态(抽象)

一个方法如果有重写,形参中可能有几种类型,那么默认不会为基本数据类型自动装箱,比如list.remove()方法中这里填一个2,那么会默认把他当成int index,也就是索引来用,最终会移除索引2处的元素;因为比起自动装箱把他当成object的2从而移除list里的2元素更加简便,所以就不会优先考虑自动装箱

字符串,集合

本文地址:https://blog.csdn.net/jz6666jz/article/details/107600647