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

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

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

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

1.简述String的特性,为什么说String是不可变的?

参考答案:

String是Java中最常用的引用类型,核心特性为不可变、常量池缓存、线程安全。

从底层源码来看,JDK1.9之前,String内部通过privatefinalchar[]value存储字符串内容;JDK1.9及之后改为privatefinalbyte[]value压缩存储,节省内存。

不可变的核心原因有两点:

1.存储数组被final修饰:数组引用地址不可修改,无法指向新数组;同时数组被私有封装,外部无法直接修改内部元素。

2.所有修改方法均为新建对象:String的substring、replace、concat、trim等所有修改类方法,都不会修改原字符串,而是创建并返回一个全新的String对象。

简单来说,一旦字符串对象初始化完成,其内部字符内容永远无法修改,所谓的字符串修改,本质都是新建对象。

2.String为什么要设计成不可变的?实际业务中有什么好处?

参考答案:

String不可变是Java的核心设计,主要有四大业务和底层优势:

①实现字符串常量池复用,节省内存

字符串常量池是JVM的缓存机制,多个引用可以指向同一个常量池字符串对象。如果字符串可变,一个

文档评论(0)

1亿VIP精品文档

相关文档