Java中String字符串类的解析



Java中的类型分为基本类型和普通类型。基本类型就8个
byte、 short、 int、 lang 
float、 double
boolean
char


而,String 是一个字符串类,是普通类型。
类的定义方法:String str = new String ("hello");
但是它也可以: String str = "hello";


两种定义类的方法有一定的区别:

String str = new String ("hello");

 // 是new了一个对象 在堆空间分配了一块内存,把对象放在里面,str 指向 这个对象


String str = "hello";

 // 没有创建对象,直接是str 指向了 data segment中的字符串“hello”,而且你再定义一个str2 = “hello”,那么这个时候,系统会先检测data segment里是否已经有了“hello”,如果有了那么str2直接指向这个“hello”,这是系统的优化。



最常见的区别:
String s1 = "hello";
String s2 = "hello";
那么s1 == s2得到的是true
String s3 = new String ("hello");
String s4 = new String ("hello");
而s3 == s4得到的是false
因为“==”比较的是地址,s3,s4指向了两个不同的对象,地址不一样
而s1,s2都是指向的“hello”,地址一样
用equals比较就没问题了
s1.equals(s2)  // true
s3.equals(s4)  //true

这才是对字符串进行比较


参考资料:

https://zhidao.baidu.com/question/469293388.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值