一、基本数据类型
整数型:byte、short、int、long
浮点型:float、double
字符型:char
布尔型:boolean
二、基本类型所占字节及位数
上面的默认值是指基本数据类型的引用类型的初始值。比如:int的引用类型是Integer,初始值为0.其他的类似。
装箱和拆箱就是基本数据类型和引用数据类型之间的相互转换。
三、==和equals的区别
1.当==作用于基本数据类型时,比较的基本数据类型的值;当作用于引用类型时,比较的是引用类型对象所在的地址。
2.equals不能作用于基本数据类型;当作用于引用类型时,若引用类型没有重写equals方法,那么比较引用类型对象所在的地址;若引用类型重写了equals方法,那么比较的是对象所指向的内容。
四、类变量(静态变量)和实例变量(成员变量)的区别
1.类变量在内存中只存一份,只进行一次的初始化,在加载类的过程中完成类变量的初始化分配;实例变量属于实例对象的成员,每创建一个实例对象,都会为实例变量分配一次内存。
2.类变量存储在方法区;实例变量存储在堆中,它的引用存储在当前线程栈。
3.类变量是由static修饰的;实例变量不需要static修饰。
4.类变量在加载类的时候就加载完;实例变量只有在实例化对象的时候才会加载。
五、ArrayList和LinkedList的异同
1.它们都是List接口的实现类(Vector也是List接口的实现类)。
2.ArrayList是基于数组的数据结构;LinkedList是基于链表的数据结构。
3.当获取元素时,ArrayList比LinkedList的速度快。因为ArrayList可直接通过下标来获取,而LinkedList需要移动指针来获取元素。
4.当增加元素和删除元素时LinkedList的效率比ArrayList高,因为ArrayList对元素操作后要移动元素,而LinkedList只需要移动指针到指定位置即可。