[Java开发之路](8)图说字符串的不变性
2015-12-26 23:46
260 查看
我们用下面一组图来说明Java的不变性。
1.声明一个字符串
s存储了字符串对象的引用。下面图片中的箭头就表示这种存储引用。
2. 将一个字符串变量赋值给另外一个字符串变量
s2变量存储了同样的引用值。所以,两个变量指向同一个字符串对象。
3. 合并字符串
s现在存储的是新生成的字符串对象的引用。
4. 总结
一旦一个字符串在内存(堆)上创建,这个字符串就不会改变。我们应该注意到String类的所有方法都不会改变字符串本身,而是返回一个新的字符串。
如果我们需要一个可以改变的字符串,我们可以使用StringBuffer或者StringBuilder。否则,因为每次都是创建一个新的字符串。
1.声明一个字符串
[code]String s = "abcd";
s存储了字符串对象的引用。下面图片中的箭头就表示这种存储引用。
2. 将一个字符串变量赋值给另外一个字符串变量
[code]String s2 = s;
s2变量存储了同样的引用值。所以,两个变量指向同一个字符串对象。
3. 合并字符串
[code]s = s.concat("ef");
s现在存储的是新生成的字符串对象的引用。
4. 总结
一旦一个字符串在内存(堆)上创建,这个字符串就不会改变。我们应该注意到String类的所有方法都不会改变字符串本身,而是返回一个新的字符串。
如果我们需要一个可以改变的字符串,我们可以使用StringBuffer或者StringBuilder。否则,因为每次都是创建一个新的字符串。
相关文章推荐
- 在eclipse中进行Struts2项目的配置
- 【跟我学spring 4.0 】之第三节-bean的配置
- Java 环境变量配置
- Java 利用 JDBC 连接 Sqlsever2012 实现 增删改查
- ssh下:系统初始化实现ServletContextListener接口时,获取spring中数据层对象无效的问题
- Eclipse 使用自己的签名包进行签名
- Java局部变量final
- java thread源码分析
- 【跟我学spring 4.0 】之第二节-spring Ioc的概述
- Java中的引用传递
- java环境变量的配置
- Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(六)之Initialization & Cleanup
- 【跟我学spring 4.0 】之第一节-springhello 的创建
- spring异常
- java中的内部类
- 使用Spring MVC统一异常处理实战
- Struts2中校验配置问题
- java判断string变量是否是数字的六种方法小结
- Eclipse Helios 配置 Android SDK 2.3 和 ADT 0.9.9
- JavaScrip——练习(求整数和、求整数积)