2019 java基础必会

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算法的时候分布均匀点(可详细了解)。

先写到这,后面又来更新

发布了41 篇原创文章 · 获赞 17 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/Mr_carry/article/details/103088643