1.java重载和重写的区别?
java重载指的是多个同名函数并且可以有数量不等,类型不一样的数据参数存在,并且返回值也可以不同。是java多态的一种表现。
java重写是针对继承关系,父类实现和子类存在差异的时候,子类可以重写父类的方法,也是一种多态的表现,不过重写的方法名和参数,返回值必须和父类一样。
2.String 和 StringBuffer、StringBuilder 的区别是什么?String 为什么是不可变的?
String是final型的,也就是不可变对象,为什么不可变?1.字符串常量需要,String是java最常用的对象。也就是类似于String需要避免出现浅拷贝那样出现变量被修改的情况。2.HashMap的hashCode需要一个不变的String来存储。3.安全性高,在数据传输以及java的各方面的应用非常的有必要。
3.接口和抽象类的区别是什么?
接口不能有实现,抽象类可以部分实现;
接口可以间接实现多继承,抽象类则只能有一个实现;
接口声明的只能是静态变量,而抽象类能声明普通变量;
4.Object类的常见方法?
.toString() equals() 和 hashCode()
5.ArrayList 与 Vector 区别
Vector的方法都是线程同步的,也就是线程安全的,当容量不够的时候容量会扩大一倍。
ArrayList则是线程不安全的,这也带来了性能上的高效,当容量不够的时候或扩大50%。
6.HashMap 和 Hashtable 的区别?
HashMap是HashTable的简单实现,HashMap不是线程安全的,允许null值。HashTable是线程安全的,不允许null值。性能HashMap会高一点。
7.HashMap 的长度为什么是2的幂次方?
HashMap为了使得HashCode执行Hash算法的时候分布均匀点(可详细了解)。
先写到这,后面又来更新