Java String和一般引用对象的区别

博客介绍了Java中两种定义字符串变量的方式。使用String定义时,会先在常量池查找,若不存在则放入并让变量指向其地址,存在则直接指向;使用new String()定义时,会在堆中新建字符串,变量指向堆中的地址。
		String s1 = "abc";
		String s2 = "abc";
		String s3 = new String("abc");
		System.out.println(s1==s2);	//true
		System.out.println(s1==s3);	//false

用String定义字符串变量时,会先在常量池里面找有没有字符串abc,如果没有就把字符串abc放到常量池,变量名指向常量池中的地址,如果字符串已存在那么就不再重复放字符串到常量池了,变量名直接指向常量池中的地址

用new String()定义变量时,会和普通的引用类型一样,在堆中新建字符串abc,变量名指向堆中的地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值