中软国际Java面试高频题及详细答案(实战版).docxVIP

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

中软国际Java面试高频题及详细答案(实战版).docx

中软国际Java面试高频题及详细答案(实战版)

一、Java基础核心(必问)

1、==和equals的区别

答案:

==是运算符,equals是Object类的方法,二者核心区别分两种数据类型:

基本数据类型:==直接比较变量存储的数值是否相等;基本类型没有equals方法。

引用数据类型:==比较的是对象的内存地址,判断是不是同一个对象;equals默认也是比较内存地址,但String、Integer、ArrayList等常用类都重写了该方法,重写后核心比较对象的内容是否一致。

日常开发中,字符串、包装类对比内容,一律用equals,同时养成常量前置写法(test.equals(str)),避免空指针异常。

2、String、StringBuffer、StringBuilder的区别和使用场景

答案:

1)String:字符串不可变,每次拼接、修改字符串都会生成新的字符串对象,效率低。底层在JDK9及以上由char数组改为byte数组,节省内存。

2)StringBuffer:字符串可变,所有修改方法都加了synchronized锁,线程安全,但并发场景下锁竞争会导致执行效率偏低。

3)StringBuilder:字符串可变,无锁、线程不安全,执行效率最高。

使用场景:简单字符串赋值、少量拼接用String;多线程环境下字符串频繁修改用StringBuffer

文档评论(0)

1亿VIP精品文档

相关文档