Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
醒狮指南
JavaGuide
提交
d5dd6a13
J
JavaGuide
项目概览
醒狮指南
/
JavaGuide
与 Fork 源项目一致
从无法访问的项目Fork
通知
5
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
JavaGuide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
d5dd6a13
编写于
8月 21, 2019
作者:
L
LicoCode
提交者:
GitHub
8月 21, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update Java内存区域.md
补充说明String intern
上级
7b0756a8
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
2 addition
and
1 deletion
+2
-1
docs/java/jvm/Java内存区域.md
docs/java/jvm/Java内存区域.md
+2
-1
未找到文件。
docs/java/jvm/Java内存区域.md
浏览文件 @
d5dd6a13
...
...
@@ -294,7 +294,7 @@ System.out.println(str2==str3);//false
**String 类型的常量池比较特殊。它的主要使用方法有两种:**
-
直接使用双引号声明出来的 String 对象会直接存储在常量池中。
-
如果不是用双引号声明的 String 对象,可以使用 String 提供的 intern 方法。String.intern() 是一个 Native 方法,它的作用是:如果运行时常量池中已经包含一个等于此 String 对象内容的字符串,则返回常量池中该字符串的引用;如果没有,
则在常量池中创建与此 String 内容相同的字符串,并返回常量池中创建的字符串的
引用。
-
如果不是用双引号声明的 String 对象,可以使用 String 提供的 intern 方法。String.intern() 是一个 Native 方法,它的作用是:如果运行时常量池中已经包含一个等于此 String 对象内容的字符串,则返回常量池中该字符串的引用;如果没有,
JDK1.7之前(不包含1.7)的处理方式是在常量池中创建与此 String 内容相同的字符串,并返回常量池中创建的字符串的引用,JDK1.7以及之后的处理方式是在常量池中记录此字符串的引用,并返回该
引用。
```
java
String
s1
=
new
String
(
"计算机"
);
...
...
@@ -421,6 +421,7 @@ i4=i5+i6 true
-
<http://www.pointsoftware.ch/en/under-the-hood-runtime-data-areas-javas-memory-model/>
-
<https://dzone.com/articles/jvm-permgen-%E2%80%93-where-art-thou>
-
<https://stackoverflow.com/questions/9095748/method-area-and-permgen>
-
深入解析String#intern
<https://tech.meituan.com/2014/03/06/in-depth-understanding-string-intern.html>
## 公众号
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录