java中使用的技术使字符串不可变?

时间:2013-08-17 15:09:30

标签: java string immutability

java中用于使字符串不可变的技术?
或者我如何使我的字符串类不可变 我只是想知道这背后的逻辑。

2 个答案:

答案 0 :(得分:7)

在Java中,String个对象已经是不可变的。

我无法谈论Java语言创建者如何明确地使String成为不可变的,但是这里有一些guidelines可以让你自己的类不可变:

  1. 不要使用setter方法。
  2. 制作所有字段privatefinal
  3. 不允许覆盖方法(使用类final或使用工厂模式)。
  4. 如果任何字段是可变类型的对象,则在使用这些对象时要小心:在从getter方法返回这些对象或在构造函数中接收它们时防御性地克隆它们,并且不提供修改可变对象的方法。

答案 1 :(得分:2)

Java中的

String类已经是不可变的。

供参考,请参阅http://docs.oracle.com/javase/7/docs/api/java/lang/String.html

上的文档

如果您想了解如何实现Java String类,请访问http://docjar.com/html/api/java/lang/String.java.html