java基础面试题常出现(一)

时间:2021-06-19 14:15:37

1.”==“和equals方法的区别?

  • ==操作符,对于基本数据类型变量,比较的是两个值是否相等,而对于引用类型,比较的是引用的内存的首地址,即引用同一个对象。
  • Obeject的equalls方法,根据具体业务有开发者对其进行重写。2.

2.String,StringBuilder,StringBuffer区别

  • String是内容不可变的字符串,底层使用 final char[]数组StringBuffer和StringBuilder底层使用的数组没有final关键字。
  • 执行速度上     String<StringBuffer<StringBuilde,String对象创建后不可更改,当你用“+”连接另一个字符串的时候,其实jvm是有重新创建了一个对象,将这两个东西又装了进去。
  • StirngBuilder线程不安全,效率高,StringBuffer中很多方法可以带synchronized关键字,线程安全,效率低。

3.ArrayList和LinkedList的区别和使用场景

  • ArrayList和LinkedList都实现了java.util.List(支持泛型,可存放各种类型的对象),Cloneable(支持克隆), java.io.Serializable(支持序列化)。
  • 都不是线程安全的,若要在多线程中调用他们,可使用Collection.synchronizedList方法
  • ArrayList底层使用数组,LinkdLlist底层使用链表,数组具有随机访问特点,能查询特定的元素,但是插入删除和修改比较慢