简明现代魔法 -> Java编程语言 -> Java字符串的不可变性

Java字符串的不可变性

2009-11-08

String 对象是不可变的。

看似修改了 String 对象的方法,实际上是创建了一个全新的 String 对象。最初的 String 是没有改变的。

程序代码

public class Immutable {
	
	public static void main(String[] args){
		// 原来的字符串
		String str = "Hello NowaMagic";
		System.out.println(str);
		// 大写后的字符串
		String strUpcase = upcase(str);
		System.out.println(strUpcase);
		// 原来的字符串
		System.out.println(str);
	}
	
	static String upcase(String str){
		return str.toUpperCase();
	}
}

原来的 str 为 Hello NowaMagic

调用字符串大写转换方法之后,创建了全新的字符串对象 HELLO NOWAMAGIC

再输出原来的字符串对象,值仍然为 Hello NowaMagic

程序运行结果

Hello NowaMagic
HELLO NOWAMAGIC
Hello NowaMagic

把 str 传给 upcase 方法时,实际传递的只是 str 引用的一个 copy。而原来的引用则还是指向原来的字符串数据。

随机文章推荐
网站分类


注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

进入新博客
喜欢本文,就分享它吧
给我留言
您的名字:
您的邮件:
您的网站:


 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们