如何详细解析String类中intern方法的应用场景?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1406个文字,预计阅读时间需要6分钟。
在讲解intern方法前,我们先简要回顾一下Java中常用类型池的分类。类型池主要分为以下几类:基本类型池、包装类型池和字符串类型池。
在讲intern方法前,我们先简单回顾下Java中常量池的分类。
常量池的分类#
Java中常量池可以分为Class常量池、运行时常量池和字符串常量池。
1. Class文件常量池
在Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用。
所谓字面量类似与我们平常说的常量,主要包括以下两种
- 文本字符串,例如String a = "aa"。其中"aa"就是字面量。
- 被final修饰的变量。
符号引用包括以下形式:
- 类和接口和全限定名:例如对于String这个类,它的全限定名就是java/lang/String。
- 字段的名称和描述符:所谓字段就是类或者接口中声明的变量,包括类级别变量和实例级的变量。
- 方法的名称和描述符:所谓描述符就相当于方法的参数类型+返回值类型。
本文共计1406个文字,预计阅读时间需要6分钟。
在讲解intern方法前,我们先简要回顾一下Java中常用类型池的分类。类型池主要分为以下几类:基本类型池、包装类型池和字符串类型池。
在讲intern方法前,我们先简单回顾下Java中常量池的分类。
常量池的分类#
Java中常量池可以分为Class常量池、运行时常量池和字符串常量池。
1. Class文件常量池
在Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用。
所谓字面量类似与我们平常说的常量,主要包括以下两种
- 文本字符串,例如String a = "aa"。其中"aa"就是字面量。
- 被final修饰的变量。
符号引用包括以下形式:
- 类和接口和全限定名:例如对于String这个类,它的全限定名就是java/lang/String。
- 字段的名称和描述符:所谓字段就是类或者接口中声明的变量,包括类级别变量和实例级的变量。
- 方法的名称和描述符:所谓描述符就相当于方法的参数类型+返回值类型。

