Java实用高频面试题及详细答案(真实面试版).docxVIP

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

Java实用高频面试题及详细答案(真实面试版).docx

Java实用高频面试题及详细答案(真实面试版)

一、Java基础核心面试题

1.==和equals()的区别?日常开发怎么用?

详细答案:

1、==是运算符,既可以比较基本数据类型,也可以比较引用数据类型。

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

-引用类型:比较的是对象的内存地址是否相同,也就是判断是不是同一个对象。

2、equals()是Object类的方法,默认只能比较对象地址。大部分常用类(String、Integer、集合类)都重写了该方法,重写后比较的是对象的内容值,不是地址。

开发规范:

-基本类型判等只用==;

-字符串、包装类、自定义对象内容判等,一律用equals();

-为了避免空指针,统一写成目标值.equals(变量)。

2.String、StringBuilder、StringBuffer的区别?项目中如何选择?

详细答案:

1、String:字符串不可变,每次拼接、修改都会生成新字符串对象,频繁操作会产生大量垃圾对象,性能差。

2、StringBuilder:可变字符串,线程不安全,效率高,日常开发单线程场景首选。

3、StringBuffer:可变字符串,所有方法加了synchronized锁,线程安全,但是效率低。

场景选择:

-字符串固定不变、少量拼接:用String;

-频繁拼接、字符串改造(接

文档评论(0)

1亿VIP精品文档

相关文档