20
08 月

这是Java的一个经典问题。许多类似的问题已经在stackoverflow上被问过,也有很多不正确/不完整的答案。如果你不想太多,那这个问题很简单。但如果你深入考虑,它可能非常混乱。
1. 一是有趣并令人困惑的代码段

public static void main(String[] args)[......]

阅读全文

20
08 月

在Java中,String是不可变类。一个不可变的类,其实例不能被修改。在创建一个实例时,实例中的所有信息被初始化且不能被修改。不可变类有许多优点。本文总结了为什么String被设计为不可变 。一个好的答案取决于对内存、同步及数据结构等的深刻理解
1. 字符串池的要求(Requirement of[……]

阅读全文

20
08 月

这里有一系列图表来说明Java中String的不变性 。
1. 声明一个字符串

String s = "abcd";

s存储了String对象的引用。下面的箭头应解释为“存储引用”。

2. 将String变量赋给了一个变量

String s2 = s;

由于是同一个String对象,[……]

阅读全文