Java-SE 面试专题

1.通过字面量创建字符串和new 一个字符串对象有什么区别?那什么是常量池呢?

内存的分配方式不一样,通过字面量创建的字符串对象会分配到常量池中,通过new一个字符串对象会分配到堆中。常量池我的理解是,它存在于方法区(元空间)中,使用字面量创建的字符串 会直接缓存到常量池中,若再次使用该字面量创建新字符串时,不再创建新对象,而是从常量池中获取。

2.做字符串拼接的时候可以用String吗?StringBuilder和StringBuffer有什么区别?

不建议直接用String做拼接,最好StringBuild或者StringBuffer来做拼接。StringBuild是非线程安全的,效率高。StringBuffer是线程安全的,效率低一点,但安全。

3.子类重写父类含有抛出异常的方法时有那些要求?

不再抛出任何异常;

仅抛出部分异常;

不可以抛出额外异常;

不可以抛出父类异常

4.final、finally、finalize有什么区别?

final 用于修饰类、变量、方法。修饰类表示该类不可以被继承,修饰方法表示该方法不可以被重写、修饰变量为常量。

finally一般作用在try-catch捕获异常代码块中,不论代码是否发生异常,finally中的代码一定会被执行,通常用来关闭一些资源是使用。

finalize属于Object类中的一个方法,当对象被回收时,会调用此方法。

5.List集合和Set集合有什么区别?

List集合是可重复的,而且有序。set集合是无序的不可以重复。

6.集合中的泛型有什么用?

集合中的泛型是用来约束元素的类型的

7.常用的List集合有哪些?有些么区别?

常用的List集合有ArrayList LinkedList Vector.

ArrayList底层是数组,他的查询速度快,增删改慢;

LinkedList底层是链表,它的查询速度慢,增删速度快.

ArrayList和LinkedList都是非线程安全的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值