String类的创建方式及其区别

创建方式两种方法

1.String 变量名="…" ; (这是直接赋值式创建)
2.String 变量名=new String("…"); (这是构造方法式创建)
String a = "Uzi";
System.out.println(a);
String b =new String("LangX");
System.out.println(b);

结果

Uzi
LangX

区别:内存存储方式不同

  • 第一种创建方式

String a = “Uzi”;
String b =“Uzi”;


解释
栈中存了变量a的地址,“Uzi”这个数据被存入了常量池中,当再次定义一个变量b的值和a一样时,栈并不会先存入一个新的地址,而是先看常量池中是否有相同的值,如果有,就会把这个值的地址复制到新的变量在栈中的地址空间中(简单来说就是先创建个a,然后创建了和a值相等的b,那么b的地址就和a的地址一样

  • 第二种创建方式

String a =new String(“LangX”);
String b =new String(“LangX”);


解释
每创建一个对象就会在堆中生成一个空间,在栈中生成一个地址。

代码解释

String b="zhu";
String bb="zhu";
System.out.println(b==bb);
String c=new String("zhu");
String cc=new String("zhu");
System.out.println(c==cc);

结果

true
false

解释

  • 上边的等号比较的是地址是否相同。
  • b和bb的地址是相等的,所以是true
  • c和cc的地址是不一样的,所以是false

ps:以上为String类的创建方式及其区别的知识,如果你还有什么想要补充的或者想要说的,请在下方留言,感谢观看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值