Java笔试题库及其答案及答案.docxVIP

  • 2
  • 0
  • 约8.13千字
  • 约 20页
  • 2026-06-29 发布于河南
  • 举报

Java笔试题库及其答案及答案

1.Java基础高频笔试题

1.1==和equals()的区别

对于基本数据类型,==比较的是变量存储的数值;对于引用数据类型,==比较的是对象的内存地址,判断两个对象是否指向同一块内存空间。

equals()是Object类定义的方法,未重写的equals()方法默认逻辑和==完全一致,比较对象内存地址;String、Integer、Date等包装类均重写了equals()方法,重写后的逻辑为比较对象的内容是否相等。

注意特殊场景:Integer缓存范围内(-128~127)的对象直接复用缓存实例,此时==和equals()结果一致;超出缓存范围的Integer对象会新建实例,==返回false、equals()返回true。String类的字面量会存入字符串常量池,newString(a)创建的对象存放在堆中,两者用==比较返回false,用equals()比较返回true。

1.2String、StringBuffer、StringBuilder的区别

可变性差异:String底层由final修饰的数组实现(JDK8及之前为char[],JDK9+为byte[]加编码标识),属于不可变对象,每次修改字符串都会生成新的String对象,原对象不会被改动;StringBuffer和StringBuilder继承自AbstractString

文档评论(0)

1亿VIP精品文档

相关文档