string两种不同的赋值方式

string两种不同的赋值方式

ID:34708020

大小:55.09 KB

页数:3页

时间:2019-03-09

string两种不同的赋值方式_第1页
string两种不同的赋值方式_第2页
string两种不同的赋值方式_第3页
资源描述:

《string两种不同的赋值方式》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、String主要有这么两种赋值方式:一、类似普通对象,通过new创建字符串对象。Stringstr=newString("abc");二、类似原型那样直接赋值。如Stringstr="abc";这两种赋值方式有什么不同,估计很多人也多少有些了解?下面我们主要围绕几个问题展开:1、为什么String可以不用new就可以创建对象?2、这两种赋值方式有什么不同?一、打开了String.class,有这么一段介绍:viewplaincopytoclipboardprint?1./** 2.* The String

2、 class represents character strings. All 3. * string literals in Java programs, such as "abc", are 4. * implemented as instances of this class. 5. * 

 6. * Strings are constant; their values cannot be changed after they 7. * are created. String buffers 

3、support mutable strings. 8. * Because String objects are immutable they can be shared. For example: 9. * 

 10. *     String str = "abc"; 11. * 

 12. * is equivalent to: 13. * 

 14. *     char data[] = {'a', 'b

4、', 'c'}; 15. *     String str = new String(data); 16. * 

 17. * Here are some more examples of how strings can be used: 18. * 

 19. *     System.out.println("abc"); 20. *     String cde = "cde"; 1. *     System.out.println("abc"

5、 + cde); 2. *     String c = "abc".substring(2,3); 3. *     String d = cde.substring(1, 2); 4. * 

 5. * 

 6. */  通过上面的介绍,我们可以清楚,直接赋值的话,赋值方式二,是通过编译器在起作用,当你对"abc"没有通过new创建时,他会自动默认给你调用构造函数newString(charvalue[]).所以问题一也就有答案了。不显式调用String的构造函数(通过new叫显式调用)

6、,其实JDK编译器会自动给你加上。但也并不全然,显式和隐式之间也有差别的。二、隐式:String password="ok";利用到了字符串缓冲池,也就是说如果缓冲池中已经存在了相同的字符串,就不会产生新的对象,而直接返回缓冲池中的字符串对象的引用。  如:  String a = "ok";   //新建了一个String对象 String b = "ok";   // 从缓冲池找 String c = new String("ok");   //新建一个String对象 String d = new String("ok");

7、   // 不从缓冲池找,新建一个     System.out.println(a==b);//将输出"true";因为两个变量指向同一个对象。  System.out.println(c==d);//将输出"flase";因为两个变量不指向同一个对象。虽然值相同,只有用c.equals(d)才能返回true. 用EclipseDebug了一下,查看了b和c的组成,外部结构式一样的,但是内存地址没法查看。由图可以看出,b和c的value是一样的,而equals方法正是比较value的每个字符得出结果的。而=是比较对象的内存地址得

8、出的(引用的内容来自同一个地方):下面是String的equals的源代码:viewplaincopytoclipboardprint?1.   public boolean equals(Object anObject) {  2.if (thi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。