假设我这样做: return new ArrayList<E>(original); // this is a shallow memcopy.我尝试修改新的列表,但由于String(或任何不可变的对象)是不可变的,所以执行如下操作:gimmeAList(something).get(0).replace("a", "b");实际上似乎不会改变这两个列表中的任何内容。
那么,在这种情况下,我是否可以假设(对于列表中的不可
我在理解Java封装方面遇到了一些困难。我所知道的是,封装允许从程序中的任何其他地方隐藏信息(使用私有变量)。但是,有人能告诉我,创建一个带有公共数据字段的类是如何造成问题的吗?如果类提供了getter和setter方法,我不理解数据是如何隐藏的。 private String name; }
public Student(int id; String name, int grad