1、java的8大基本数据类型
byte: 八位整数 -128——127,可用来节省内存的使用。-2^7~2^7-1,最高位表示符号位;
short: 16位整数 -32768——32,767,也比较省内存。-2^15~2^15-1int: 32位整数 -2,147,483,648——2,147,483,647,一般来说整数都够用了 -2^31到2^31-1
long: 64位整数 -9,223,372,036,854,775,808—— 9,223,372,036,854,775,807,一般不需要用
float: 32位浮点,如果浮点需要节省内存用这个。
char:2字节,16位
double: 64位浮点,一般非整数浮点可用这个。
封装类:Byte、Short、Integer、Long、Float、Double、Character
Integer对象的比较:Integer i = new Integer(123);Integer j = new Integer(123)那么i==j;跟对象的缓存有关系。
2、equals和“==”的区别:a:在String对象中,“==”用于比较两个对象的地址,而equals用于比较String的内容是否一样。b:在Object对象中“==”和equals的功能一样,都是为了比较两个对象的地址是否一样,所以,一般自定义的对象都默认继承Object,因此一般也需要重写equals方法。一般建议重写equals方法后也要重写hashcode方法。因为hashcode相同才会去比较equals。
3、Object中常用的方法:equals、notify、wait、toString、
toString引用类型引用这个方法时,默认打印这个对象的包全名@对象的hashcode、对于基本数据类型时,直接输出其值。
4、Java的四种引用:强软弱虚引用;强引用是java虚拟机永远不会回收的引用类型;软引用:是在java虚拟机内存不够时才回收,多用于缓存;弱引用:是只要发生gc就一定会回收的引用;虚引用:相当于没有引用,随时会回收。
5、String、StringBuilder、StringBuffer的访问速度:StringBuilder》StringBuffer》String
6、HashTable使用synchronized控制同步机制,一个线程访问Hashtable写时,其他线程连读也不允许
7、collections是java.util下的一个类,有很多静态方法,而collcetion是java.util下的一个接口
8、只有方法有多态,属性不支持多态,父类引用对应子类对象,调用的仍旧是父类的属性