Java后台开发高频面试题及详细答案(实战版).docxVIP

  • 1
  • 0
  • 约6.41千字
  • 约 10页
  • 2026-10-13 发布于河北
  • 举报

Java后台开发高频面试题及详细答案(实战版).docx

Java后台开发高频面试题及详细答案(实战版)

一、Java基础核心

1.==和equals的区别?

答案:

1、==是运算符:

-基本数据类型:比较的是数值是否相等;

-引用数据类型:比较的是对象的内存地址是否相同。

2、equals()是Object类的方法:

-原生Object的equals本质和==一致,比较地址;

-String、Integer等包装类重写了equals方法,重写后比较的是对象内容值,不比较地址。

日常开发中,字符串对比必须用equals,基本类型用==。

2.String、StringBuilder、StringBuffer的区别?

答案:

1、String:不可变字符序列,底层是final修饰的char数组,每次拼接字符串都会生成新对象,频繁拼接效率极低。

2、StringBuilder:可变字符序列,线程不安全,无锁,拼接效率高,单线程场景首选。

3、StringBuffer:可变字符序列,线程安全,所有方法加了synchronized锁,多线程下不会出现并发问题,但性能比StringBuilder差。

实战总结:少量字符串拼接用String;频繁拼接单线程用StringBuilder,多线程用StringBuffer。

3.final、finally、finalize的区别?

答案:

1、final:修饰符

-修饰类

文档评论(0)

1亿VIP精品文档

相关文档