String常见构造方法和区别对比

1.常见的四种方法

注意:String这个类比较特殊,打印其对象名的时候,不会出现内存地址,而是该对象所记录的真实内容

2.构造方法和双引号创建对象的区别

注意:== 号做比较  

基本类型数据:比较的是具体的值

引用数据类型:比较地址值

1.以" "方式给出的字符串,只要字符串序列相同(顺序和大小写),无论在程序 中出现几次,JVM都只会建立一个String对象,并在字符串常量池中维护

  • 字符串常量池:当使用双引号创建字符串对象的时候,系统会检查字符串是否在字符串常量池存在,不存在就创建,存在就直接复用。

所以s1==s2是成立的,地址值相同

2.通过构造方法创建的字符串对象,在堆内存中存储,每一次都会申请一个内存空间,虽然内容相同,但是地址值不同

  • 在堆内存中开辟一块空间,存储'a','b','c',地址是001
  • s1,s2会在在堆内存中开辟两块空间,地址值分别是002,003
  • 002,003内部存储着001的地址

所以S1==S2 ,相当于判断002==003,所以这是不成立的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酆都小菜鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值