Java开发常见面试题及详细答案.docxVIP

  • 2
  • 0
  • 约1.3万字
  • 约 13页
  • 2026-05-19 发布于河北
  • 举报

Java开发常见面试题及详细答案

一、基础核心题(必问,侧重实操理解)

1.说说String、StringBuffer、StringBuilder的区别,实际开发中怎么选?

答案:这三个都是处理字符串的,但核心区别在可变性和线程安全,实际用的时候看场景,不搞虚的:

1.String:不可变对象(底层是finalchar数组),每次拼接、修改都会新生成一个String对象,频繁修改会浪费内存(比如循环拼接字符串),效率最低。适合字符串不常修改的场景,比如定义常量、固定文本(如接口地址、配置项)。

2.StringBuffer:可变对象,底层也是char数组,加了synchronized锁,线程安全,但因为锁的存在,效率比StringBuilder低。适合多线程环境下的字符串修改(比如多线程日志拼接),实际开发中这种场景不多见。

3.StringBuilder:可变对象,无锁,线程不安全,效率最高。适合单线程环境下的字符串频繁修改(比如循环拼接、字符串拼接后返回),这是日常开发中用得最多的,比如接口返回结果拼接、前端参数组装。

补充:日常开发中,只要不是多线程场景,直接用StringBuilder;如果是常量拼接(比如Stringa=a+b),编译器会自动优化成String,不用刻意用其他两个。

2.什么是Java的多态?实际开发中哪里用到了?举个真实场景例子

文档评论(0)

1亿VIP精品文档

相关文档