java中String new和直接赋值的区别

 我来答
功慧利tv
2017-01-07 · 超过76用户采纳过TA的回答
知道小有建树答主
回答量:105
采纳率:100%
帮助的人:82.2万
展开全部
java中String new和直接赋值的区别如下:
1、执行语句String str=new String("abc")时,不管字符串池中是否存在字符串"abc",直接新建一个字符串"abc"。
注意:新建的字符串"abc"不是在字符串池中),然后将其付给str。
2、执行语句String str="abc"时,首先查看字符串池中是否存在字符串"abc",如果存在则直接将"abc"赋给str,如果不存在则先在字符串池中新建一个字符串"abc",然后再将其赋给str。
实例代码:

public class Demo {
public static void main(String[] args) {
String a = new String(); // 在堆中生成对象s,在 字符串池中创建空字符串
String aa = ""; // 字符串池中已经存在空字符创,不用再创建了
String aaa = new String("");// 堆中生成对象aaa,并在 字符串池中创建空字符串
String b = new String("cisco");// 堆中生辰对象b, 字符串池中创建字符串“asdf”
String c = new String("cisco");// 堆中创建对象c,字符串池中创建字符串“asdf”
String d = "cisco"; // 字符串池中有“asdf”字符串,不再创建
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式