堆栈

String

内存

栈 stack

存放基本数据类型和数据,但对象本身不存放栈中。
n=5,如果栈中已经存在一个数值5,讲不再开辟一个新的空间。

栈中的内容,如果存在直接使用,如果不存在则重新开辟空间,存储

值类型,在方法内部改变,方法外部不会改变。

堆 heap

存放的是new产生的数据。(数组、对象)

字符池

1. String s1="wuyu"; //在字符串中创建一个对象 //字符串wuyu String s2="wuyu"; System.out.println(s1==s2);//true System.out.println(s1.equails(s2));//true2. 保存字符串对象,可以被共享使用,提高了效率 存放方法区,

`String s3="wuyu"; //堆
String s4=new String("wuyu");//栈
System.out.ptintln(s3==s4)//false
//栈区地址和堆区地址不一样
System.out.ptintln(s3.equails(s4))//true

`

3. //常量的值在编译的时候就被确定(优化)了

String str1="wu"+"yu";  //创建一个对象
String str2="wuyu";
str1==str2? //true

4. 字符串: //在第三行(str1+str2)会在堆中创建一个StringBuilder的类 //同时str2指向StringBuilde对象完成初始化, //然后调用append方法完成str4的字符串合并 //然后调用StringBuilde的toString();放回一个字符串对象。 //str5存储的地址还是在字符池中 //所以str4==str5是不相等的

//拼接的字符串存储在堆中

String str1="wu";
String str2="yu";
String str3=str1+str2;
String str4="wuyu";
str3==str4? //false

5.  false 同上

6. 

输出:abc
String 特殊的引用类型

7. String str1="abc"; String str2=new String("new"); str1==str2 //true

常量池

静态域(方法区/静态区)

寄存器

代码段

数据段

值类型

引用类型

引用类型:数组、对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值