一、比特流的本质就是数组
二、位运算
位运算就是CPU的底层原理,半导体电路进行位运算
位运算涉及一些算法,&和^
^ 异或 两变量交换值,不依赖第三个变量
x^s = k 异或知道两者就能推另一个
a = a<<2就是乘以2的多少次方
相反 a=a>>2;就是除以多少次方
不仅是二进制,可以推广到任意进制
加减乘除底层都是位运算,运算速度很快
位运算是计算机底层很重要的运算
三、不可变字符串
String 类没有提供修改字符串的方法
不可变不是指的值不可变,而是不可以在原地址改变,只有再申请一个地址来存新的数据
四、
Java中两个非基本类型比较,比较的是他们的指向是否相同
赋值先判断常量池有没有这个值,如果有的话,不会再申请一个新的,而是一起指向那个值
Java 中如果系统判断一块内存地址不再需要,会自动的进行垃圾回收
五、equals()
new的对象,就算值一样,地址也是不一样的,不在常量池中
equals()方法用于判断两个对象的内容是否相等。它与==运算符有所不同,==运算符主要用于判断两个引用是否指向同一个对象(即比较的是对象的引用地址),而equals()方法重点关注的是对象内部所包含的数据内容是否相同。
equals()每个类都有这个方法,都是集成Object,默认和==一样比较是否相同
字符串中对这个方法进行了重写,近比较值
重写equals还需要重写hashcode(),因为hashmap的使用需要这两个方法配合
六、空串
空串是指一个字符串对象,其长度为 0,null 串并不是一个真正意义上的字符串对象,而是表示一个字符串引用变量没有指向任何字符串对象,即它的值为 null。