JAVA中关于String的若干问题
来源:互联网 发布:西安华信软件 编辑:程序博客网 时间:2024/06/05 13:31
String在是一个字符串数组,在Java中是用private final char value[]来储存的,正因为它是final类型的,所以String是不可变的(immutable)。相对于String,StringBuffer则是可以改变的字符串。
我们来重点看一下以下的一段代码:
String s1="abc";
String s2=s1;
String s3=new String("abc");
String s4=new String("abc");
system.out.println(s1==s2);
system.out.println(s3==s4);
上面代码中的输出结果分别是什么呢?第一个是true,第二个则是false。为什么是这样的呢,因为s1是"abc"是一个常量,Java中这种常量是放在常量池中,相同的常量在内存中只有一个副本,所以s1==s2为真。而s3,s4是new了两个String对象,这两个不同的对象“abc”都在内存的堆中,地址不同。
String s5=new String("abc");
s5=s5.intern();
system.out.println(s1==s5);
这后面这个结果又是怎样呢?
因为增加了s5=s5.intern();这条语句,词语句表示的是看常量池中是否有“abc”这样的String,若有就返回应用,若没有就创建,所以答案就是true。
0 0
- JAVA中关于String的若干问题
- Java String中若干问题
- java中日志的若干问题
- 关于Java泛型的若干问题
- Java中传递参数的若干问题
- 关于Winpcap的若干问题
- 关于DLL的若干问题
- 关于DES的若干问题:
- 关于fusionchart的若干问题
- 关于aotutrace 的若干问题
- 关于ARM的若干问题
- 关于CSpreadSheet的若干问题
- 关于指针的若干问题
- 关于fopen的若干问题
- 关于webview的若干问题
- 关于ListView的若干问题
- 关于ABST2的若干问题
- 关于CSpreadSheet的若干问题
- java中把一个字符串中大写字母转换为小写,小写字母转换为大写
- 第三方下拉刷新快速集成
- poj 2054 Color a Tree 据说是贪心
- USACO6.4.3 Wisconsin Squares(wissqu)
- 深入分析 Java I/O 的工作机制
- JAVA中关于String的若干问题
- poj2948--Martian Mining(dp)
- mini2440 使用mdev创建设备节点问题
- 使用webservice操作强类型数据集时的注意事项
- HDU 1000 A+B Problem C/C++
- 动态调用动态语言--脚本API
- USACO6.5.1 All Latin Squares(latin)
- git的用法03
- 自学成才网站