Java中的String

String str1;    
String str2 = null;
String str3 = new String();
String str4 = new String("");
String str5 = new String(" ");
String str6 = "";
String str7 = " ";
// String 博大精深

 toString 方法返回对象的类名和地址;String类重写了toString方法,返回字符串的值

hashCode 方法返回对象的内存地址,但是可以被重写;identityHashCode 方法返回内存地址,即使重写也不会有影响

''是第0个ASCLL码,表示一个空字符,缩写为NUL;' '是第32个ASCLL码,表示一个空格

  • 第一条语句:栈内开辟一块空间,存储str1
  • 第二条语句:栈内开辟一块空间,存储str2;没有为它开辟空间,str2不指向任何内存空间
  • 第三条语句:栈内开辟一块空间,存储str3;在堆内开辟一块空间,这块空间是空的,将地址传给str3
  • 第四条语句:栈内开辟一块空间,存储str4;在堆内开辟一块空间,用空字符串初始化这块空间,将地址传给str4
  • 第五条语句:栈内开辟一块空间,存储str5;在堆内开辟一块空间,用一个空格的字符串初始化,将地址传送给str5
  • 第六条语句:栈内开辟一块空间,存储str6;字符串常量池中开辟空间,存储一个空字符串,将地址传给str6
  • 第七条语句:栈内开辟一块空间,存储str7;字符串常量池中开辟空间,存储一个空格的字符串,将地址传给str7

综上所述:str1仅仅声明了一个字符串,并没有初始化,尽量不要使用;str2声明并且用null初始化了字符串,可以较多的使用;str3, str4, str5 均开辟了一块空间,用它们初始化是不必要的,再次给它们赋值时又会生成一个新的字符串,并让它们指向新的字符串;str6, str7首先在字符串常量池中查找有没有已经存在的字符串,如果有,就将引用指向这些已经存在的字符串,如果没有,就在字符串常量池中创建新的字符串常量,并将引用指向这些已经存在的字符串。一般声明一个字符串最好用第二条语句

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值