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

  • 1
  • 0
  • 约3.96千字
  • 约 6页
  • 2026-10-12 发布于河北
  • 举报

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

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

1.String属于什么数据类型?和基本数据类型有什么区别?

答案:

String是引用数据类型,不属于8种基本数据类型。

核心区别:

基本类型(int、char、byte等)直接存储数值在栈内存中,默认有固定默认值,没有对象概念;

String是类(java.lang.String),本质是对象,数据存储在堆内存,栈中仅存储对象引用地址,默认值为null。

补充:日常写的Stringstr=abc是语法糖,底层依然是创建String对象。

2.简述String的不可变性?为什么String是不可变的?

答案:

String的不可变指:字符串一旦创建,内容无法被修改,任何拼接、替换、截取操作,都不会改动原字符串,只会生成一个新的字符串对象。

不可变的底层原因(JDK1.9前后有区别):

JDK1.8及之前:String内部通过privatefinalchar[]value存储字符,数组被final修饰,意味着数组地址不可变,且没有提供任何修改数组内容的公开方法,保证内容无法篡改;

JDK1.9及之后:改用privatefinalbyte[]value存储,通过编码压缩节省内存,依然是final修饰,保留不可变特性。

额外关键点:final修饰数组,是地

文档评论(0)

1亿VIP精品文档

相关文档