Java中字符串内存位置
来源:互联网 发布:我的失恋 知乎 编辑:程序博客网 时间:2024/05/29 19:04
前言
总结一下:基本类型的变量数据和对象的引用都是放在栈里面的,对象本身放在堆里面,显式的String常量放在常量池,String对象放在堆中。
常量池的说明
常量池之前是放在方法区里面的,也就是在永久代里面的,从JDK7开始移到了堆里面。
String内存位置说明
显式的String常量
String a = "test";String b = "test";
- 第一句代码执行后就在常量池中创建了一个值为test的String对象;
- 第二句执行时,因为常量池中存在test所以就不再创建新的String对象了。
- 此时该字符串的引用在虚拟机栈里面。
String对象
String a = new String("testObj");String b = new String("testObj");
- Class被加载时就在常量池中创建了一个值为testObj的String对象,第一句执行时会在堆里创建new String("testObj")对象;
- 第二句执行时,因为常量池中存在testObj所以就不再创建新的String对象了,直接在堆里创建new String("testObj")对象。
验证一下
/** * */public class Client { public static void main(String[] args){ String str1 = "abcd"; String str2 = "abcd"; System.out.println(str1==str2);//true String str3 = new String("abcdabcd"); String str4 = new String("abcdabcd"); System.out.println(str3==str4);//false }}
返回结果:
truefalse
阅读全文
1 0
- Java中字符串内存位置
- Java中字符串内存位置浅析
- 字符串内存中存储位置
- Java中在一个字符串的固定位置插入字符串
- 字符串的内存存储位置
- 程序中内存位置
- JAVA字符串中取特定字符的位置
- java 求解字符串中第一次出现的字符的位置
- java 返回字符串中位置n的代码单元和位置n的代码点
- java移动字符串显示位置
- java查找一个字符串2在字符串1中第一次出现的位置
- java常用算法之返回字符串中目标字符串的位置
- Java获取字符串中某个字符串第一次出现的位置(索引)
- 字符串中查找字符串的位置
- 字符串中查找子字符串的位置
- java中判断一个字符串是否包含另外一个字符串,如果包含,计算出字符串的开始位置
- java字符串内存分析
- Java字符串内存图
- Volley
- js获取一个元素节点的子节点的方法(包括非文本节点)
- python之面向对象知识点总结
- HDU
- java单例模式
- Java中字符串内存位置
- javac 编译原理
- hdu 6181
- POJ-3468 A Simple Problem with Integers(分块 区间加+区间查询)
- udp数据报从网卡驱动到用户空间流程总结
- java 中switch基本用法
- 实体类的变量名称一定是小写!
- 关系运算
- Okhttp和Gson解析