String 高频面试题及详细答案(实战版).docxVIP

  • 1
  • 0
  • 约3.85千字
  • 约 6页
  • 2026-09-21 发布于河北
  • 举报

String 高频面试题及详细答案(实战版).docx

String高频面试题及详细答案(实战版)

1、String是什么?有什么核心特性?

答案:

String是Java中表示字符串的类,属于引用类型,位于java.lang包下。

核心特性主要有三点:

1.不可变性:字符串一旦创建,内容就不能被修改。我们平时做的拼接、替换等操作,都不是修改原字符串,而是生成一个全新的字符串对象。

2.常量池缓存:字面量方式创建的字符串,会优先存入字符串常量池复用,减少重复对象创建,节省内存。

3.线程安全:因为内容不可修改,多线程同时读取不会出现数据竞争问题,天然线程安全。

补充:JDK9之前String底层用char[]存储字符,JDK9及之后改用byte[]存储,根据字符编码自动适配,进一步节省内存。

2、为什么String是不可变的?底层怎么保证的?

答案:

从底层源码层面,有三层保障:

1.类被final修饰:String类是final类,不能被继承,避免子类重写方法破坏不可变性。

2.存储数组被final修饰:底层存储字符的数组(char[]/byte[])是privatefinal修饰,数组引用地址不可修改,无法指向新数组。

3.无对外修改方法:String没有提供任何可以直接修改底层数组的公开方法,所有增删改操作都是新建对象。

很多人会误以为final修饰数组就不

文档评论(0)

1亿VIP精品文档

相关文档