执行 String s = new String("abc") 时,在内存和对象创建层面发生了什么?
考察说明
考察对 Java 字符串常量池、堆对象创建和引用关系的理解
回答思路
- 说明字符串字面量"abc"在编译期放入常量池,运行时首次使用会创建缓存对象
- 说明 new String() 在堆上新建独立 String 对象,内容与常量池中的字符串相同但引用不同
- 解释引用 s 指向堆上新建对象,而不是常量池对象
- 补充说明 intern() 方法与常量池的交互
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。