java中费解or奇怪的String类
来源:互联网 发布:音频编辑软件64位 编辑:程序博客网 时间:2024/06/03 00:03
java中费解or奇怪的String类
在网上看到一篇这样的文章,而且广为流传。http://www.matrix.org.cn/resource/article/0/2.html
其中有一段是这样写的:
//////////////////////////////////////////////////////////////////////////
public class Test {
public static void test(String str) {
str += "World"; //我加上了个+号,我想他是忘了。
}
public static void main(String[] args) {
String string = new String("Hello");
test(string);
System.out.println(string);
}
}
运行结果:
Hello
为什么会这样呢?因为参数 str 是一个引用,而且它与 string 是不同的引用,虽然它们都是同一个对象的引用。str += "World" 则改变了 str 的值,使之指向了另一个对象,然而 str 指向的对象改变了,但它并没有对 "Hello" 造成任何影响,而且由于 string 和 str 是不同的引用,str 的改变也没有对 string 造成任何影响,结果就如例中所示。
/////////////////////////////////////////////////////////////////////////////
他的这段文字说明我看不懂..........
我把程序改了一下,如下:
class Mystring
{
String s;
Mystring(String sa)
{
s=sa;
}
}
public class TestString {
public TestString() {
}
public static void main(String[] args) {
Mystring s=new Mystring("Hello");
modify(s);
System.out.println("s= "+s.s);
}
public static void modify(/*StringBuffer*/Mystring sm)
{
sm.s+= " world";
}
}
结果为:
s= Hello world
因此,我只能说String类有点特殊!
- java中费解or奇怪的String类
- Java String中split的奇怪现象
- grails中令人费解的有关问题
- Shuffle 中六大令人费解的问题
- 令人费解的java继承问题
- Java中奇怪而又无可厚非的类加载顺序
- Java String null 奇怪问题
- 2015-1-9_C++中奇怪的std:string
- 奇怪的String.getBytes("Unicode")
- 奇怪的String.getBytes("Unicode")
- 奇怪的String.getBytes("Unicode")
- 关于STL中几个比较费解的参数类型
- MTK中令人“费解”的do...while(0)妙用
- 费解的NTDLL断点
- JS 费解的错误:
- 费解的问题
- 费解的NTDLL断点
- 费解的c++
- org.apache.commons.fileupload的使用
- xp下运行命令大全
- meizz(梅花雪) 的个性化书签
- 将进酒
- CString 操作指南
- java中费解or奇怪的String类
- 一次性设定Java程序所有组件字体
- Liunx文件系统基本目录介绍大全
- 单片机模拟器
- 奇怪的ASP上传错误
- (转贴)"堆"和"栈"的基本概念(C/C++初学者必读)
- XML轻松学习手册(3)XML的术语
- 给人也装一个中断系统
- XSLT快速参考