- 2
- 0
- 约 14页
- 2016-05-30 发布于河南
- 举报
Java基础复习笔记03我们不太注意的陷阱
刘岩
虚拟机对字符串的处理
虚拟机是将字符串直接量(不用new声明的)对象放到一个对象池中去缓存的,第一次使用的时候会将其放入池中,如果下次有其他变量访问一摸一样的直接量的话直接从对象池中去取该直接量,而不是又再生成一个对象。一般该池中的对象都不会被垃圾回收器回收。
比如:
String str1 = 1;
String str2 = 1; 实际上这段代码仅仅创建了一个字符串直接对象,保存在对象池中,池中对象就是”1”。str1和str2指向了该对象池的对象位置。
编译时能确定的值
在编译时就能确定的值,在编译的时候就能够确定是否创建新的对象池对象。比如:
String str3 = suhuanzhen123;
String str4 = suhuanzhen + 1 + 2 + 3;
System.out.println(str3 == str4); 实际上str3和str4在内存池中都是指向了suhuanzhen123这个字符串对象,所以输出时true。因为str4在编译期间就能确定值是suhuanzhen123,所以JVM不会再创建新的对象。直接从对象池中去取。
在编译期间不能确定的值
如果字符串的拼接包含了函数、变量等等编译时不确定因素,那么此时就不能指向对象池中的变量了。比如
String str5 = suhuanzhe
您可能关注的文档
最近下载
- 2026新人教版小学数学六年级下册期末综合试卷(3套打印版含答案解析).pdf
- 《2025年eVTOL载人飞行器景区运营安全培训教材》.docx
- 混凝土挡土墙专项施工方案.docx VIP
- 年产15万吨乙苯工艺设计.doc VIP
- 第9课+改革开放的起步(情境化教学课件)历史统编版新教材八年级下册.pptx VIP
- LS-1866常用参数设置方法.pdf VIP
- 〖历史〗改革开放的起步教学课件 2025-2026学年统编版八年级历史下册.pptx VIP
- 台球项目计划书.docx VIP
- 支部班子“加强理论武装、执行上级组织决定、加强党员管理监督等六个对照”2025年度组织生活会班子对照检查提纲四篇.docx VIP
- 胸部影像学检查临床应用指南(2025年版).docx
原创力文档

文档评论(0)