[讨论]String对象为何不能改变? 它的创建机制,创建模式,源码分析? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 别人已经说的很好了看如下堆内存和栈内存区别 http://www.cnblogs.com/aioria0622/archive/2008/10/24/1319078.htmldeveloperWorks 中国 > Java technology >Java 理论与实践: 哈希有效和正确定义hashCode()和equals()http://www.ibm.com/developerworks/cn/java/j-jtp05273/ 将内部成员设置为final的,对外不提供可以修改内部状态的接口。 string对象不能改变好像是内存池存有对象,没有的话也在池里做运算 只要有""就有新的String诞生了~改也是改引用 这个问题我也只是知道String类型不可变,好像是在堆内存存放字符串时,已经分配好了内存的大小,之后对字符串的操作都是先创建新的字符串空间,然后在重新把操作后的字符串写进去!!! 你好,你这个问题我也考虑过。String对象不能改变是因为:String在java中是不可变API(java中有可变与不可变两种API)。也就是说String对象在以被创建的时候就是不能被改变的了。 例如: String a = "字符"; String b = "新字符"; a = b; 这时候如果你打印a的话a的值是"新字符"。但是 这里的a只是一个引用,就好像是c语言中的指针,它是 "'字符'" 这个字符串的一个别名。所以说a指向了一个新的字符,但是原来的那个“字符”还是没有改变。 赞成。String类在设计时采用了不变模式(不变模式就是一个类的内部状态创建好后,整个生命周期都不会改变),然后在其类的方法中,没有一个方法是可以改变对象的,所有的属性也都是私有的,而且该类是final的,不可继承的,也就是同样不会有子类来改变它。 多线程,为什么会出现偶然并且错误的结果 本人想自己做个小项目练手 不知道做什么样的项目 Ultraedit-32输出窗口乱码能解决吗 遇到了变态面试题目 帮帮忙 学习java java中如何判断所输入的字符串是否为半角的英文或者数字。 这样声明错了吗? 怎么样获取c:盘根目录下的文件?救急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 请大家介绍一些好的学习网站 谁能告诉我java的api在什么地方下载? hash的词频代码有吗?JAVA “简单”的面试题,进来看看?
developerWorks 中国 > Java technology >
Java 理论与实践: 哈希
有效和正确定义hashCode()和equals()http://www.ibm.com/developerworks/cn/java/j-jtp05273/
例如:
String a = "字符";
String b = "新字符";
a = b;
这时候如果你打印a的话a的值是"新字符"。但是 这里的a只是一个引用,就好像是c语言中的指针,它是 "'字符'" 这个字符串的一个别名。所以说a指向了一个新的字符,但是原来的那个“字符”还是没有改变。
String类在设计时采用了不变模式(不变模式就是一个类的内部状态创建好后,整个生命周期都不会改变),然后在其类的方法中,没有一个方法是可以改变对象的,所有的属性也都是私有的,而且该类是final的,不可继承的,也就是同样不会有子类来改变它。