赞同科技Java面试题及详细答案(实战完整版).docxVIP

  • 1
  • 0
  • 约6.27千字
  • 约 9页
  • 2026-11-07 发布于河北
  • 举报

赞同科技Java面试题及详细答案(实战完整版).docx

赞同科技Java面试题及详细答案(实战完整版)

一、Java基础核心面试题

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

详细答案:

首先两者的比对逻辑完全不一样,核心区别分基本类型和引用类型两种场景:

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

2、equals是Object类的方法:默认底层就是==,比较对象内存地址。但像String、Integer这些常用类,都重写了equals方法,重写后比较的是对象内容/属性值,不再比较地址。

实战场景:日常开发中,字符串比对一律用equals,基本类型判断用==,避免地址比对导致的业务bug。

2、String、StringBuilder、StringBuffer的区别?

详细答案:

1、String:字符串常量,底层是final修饰的字符数组,不可变。每次拼接、修改字符串都会生成新的String对象,频繁操作会产生大量无用对象,占用内存、降低效率。

2、StringBuilder:字符串变量,线程不安全,底层可变数组,无锁操作,拼接效率最高,单线程环境优先使用。

3、StringBuffer:字符串变量,线程安全,所有方法都加了synchronized锁,多线程并发操作字符串时保证数据一致性,但加锁会带来性能损耗,效率低于StringBuilder。

实战总结

文档评论(0)

1亿VIP精品文档

相关文档