13道高频Java面试题及详细答案(实战口语版).docxVIP

  • 1
  • 0
  • 约4.08千字
  • 约 5页
  • 2026-06-07 发布于河北
  • 举报

13道高频Java面试题及详细答案(实战口语版).docx

13道高频Java面试题及详细答案(实战口语版)

1、==和equals的区别是什么?

这是Java最基础的问题,核心区别是比较的内容不一样。

==是运算符,基本数据类型比较的是数值本身,比如int、long;引用类型比较的是对象的内存地址,也就是判断是不是同一个对象。

equals是Object类的方法,默认情况下和==一样,也是比较内存地址。但像String、Integer这些常用类,都重写了equals方法,重写后比较的是对象的内容值,不再比较地址。

简单总结:基本类型只用==;字符串、对象内容对比,一律用equals。

2、String、StringBuilder、StringBuffer的区别?

核心差异在可变性和线程安全,日常开发优先级:StringBuilderStringBufferString。

1.String:字符串常量,不可变。每次拼接、修改字符串都会生成新对象,频繁操作会产生大量垃圾对象,效率最低。

2.StringBuilder:可变字符串,线程不安全,效率高。单线程环境下字符串拼接、修改首选。

3.StringBuffer:可变字符串,所有方法都加了synchronized锁,线程安全,但是锁会带来性能损耗,效率偏低。多线程共享字符串场景才用。

3、final、finally、finalize的区别?

三个单词长得像,用途

文档评论(0)

1亿VIP精品文档

相关文档