Java基础:创建String对象时,String s=new String("abc")和String s="abc"的区别

我们在学习过程中,创建String对象时,接触到两种方法分别是:

  • 调用String类的构造方法;
  • 使用双引号”“;

然而这两种方法生成的字符串对象,在内存中的存储机制是不同的。

1.调用String类的构造方法:

在使用String构造方法定义对象时,Java环境会在每次调用的时候创建一个新的对象。如下代码所示:

String a=new String("tom");
String b=new String("tom");
上述代码中,a和b使用的是两个不同的存储对象,只是对象中的内容相同。


2.使用双引号:

当使用双引号定义对象时,Java环境首先去缓冲池中寻找相同内容的字符串,如果存在就直接拿出来用,如果不存在创建一个新的字符串放在缓冲池中。示例代码如下:

String a="tom";
String b="tom";
变量a和b使用的是缓冲池中的同一个存储对象。


注意:

一般情况下,建议使用String s="abc"方式创建String 对象,因为该方式采用字符串缓冲池机制,效率高。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值