学习笔记:String和new String

本文深入探讨Java中String对象的创建方式及其在内存中的表现形式。解释了使用new关键字和直接赋值创建String的区别,以及涉及到的字符串常量池的概念。通过具体示例,分析了不同创建方式下对象的生成数量。

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

String s = new String(“xyz”);

创建了两个对象
一个是字符串字面量"xyz"所对应的、驻留(intern)在一个全局共享的字符串常量池中的实例,另一个是通过new String(String)创建并初始化的、内容与"xyz"相同的实例
只要是new,都要重新分配堆空间。

String s = “xyz”;

要看常量池里有没有”xyz”,如果有直接引用,如果没有则创建一个对象再引用。

String s = “aaa” + new String(“bbb”);

创建了4个对象
‘’aaa”一个对象;new String()一个对象;”bbb”一个对象;”aaa” + new String(“bbb”)一个对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值