一.基础篇
1.== 和equals ,==对基本类型是值比较,对引用类型是比较引用类型对象是否相同。 equals只比较值是否相等,例子
String str1= new String("A"); String str2 = “A”;“A”.equals(str2) 和“A”.equals(Str1) 都是true ,但是Str1==“A” 为false ,Str2==“A” 为true;
2. hashCode 相同,equals必然为true? 这是错误的,因为hashCode相同,值不一定相同。hashCode 是由hash算法产生的,将不同长度的输入变成了相同长度的散列值。 如果一个对象相等必然equals和hashcode 都相同。equals为true,必须同时hashcode 和值相等。
3.Math.round(2.5) = 3; Math.round(-2.5)=-2;
4.java 基础数据类型: byte(1字节),boolean(-),int(4字节) ,short(2字节) ,double(8字节),float(4字节),long(8字节),char(2字节).
5.StringBuffer 比StringBuilder效率低但是线程安全。StringBuffer.reverse()快速反正字符串。
6.final不能定义抽象类。因为抽象类可以用来继承的,用final就不能继承造成了冲突。