String创建的对象存在哪里

博客通过测试代码得出关于Java中String对象地址的结论。a、b、c地址都不相等,表明都是重新开辟地址;a和b相等,说明它们指向String常量池同一块地址;a和c不相等,意味着new出来的新对象不会相等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接放测试代码:

String a = "asdadas";
String b = "asdadas";
System.out.println(a.getBytes());//1
System.out.println(b.getBytes());//2
String c = new String("asdadas");
System.out.println(c.getBytes());//3
if(a==c){
    System.out.println("a=c");
}
else
    System.out.println("a!=c");//4

if(a==b){
System.out.println("a=b");//5
}

上面代码输出结果:

[B@15db9742
[B@6d06d69c
[B@7852e922
a!=c
a=b

结论1: a b c地址都不相等, 证明都是重新开辟地址

结论2: a b相等, 说明a b都指向String常量池的同一块地址

结论3: a c 不相等, 说明new出来的新对象都不会相等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值