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

先写到这,后面又来更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值