Я недавно научился клонированию на Java. Существует глубокое клонирование и мелкое клонирование. Я блуждал, что делает ArrayList, когда объекты добавляются к нему. Это клон?Добавляем объекты к клону ArrayList?
Я провел несколько тестов с объектом String.
String s = new String("hello");
ArrayList<String> list = new ArrayList<String>();
list.add(s);
s = s.replace('h','y');
System.out.prinln(list.get(0));
Он напечатал «привет». Так что это клон. Затем я вспомнил из личного опыта, когда добавляю объекты, которые я написал в массив, он не клонирует. Когда я меняю одно в массиве, оригинальные изменения тоже.
Я искал google, не уверен, потому что у меня не было навыков поиска, я не нашел ответа, который я искал. Затем я искал StackOverFlow, снова ничего не искал.
Так что же такое сделка с ArrayList? Прошу прощения, если этот вопрос повторяется, я действительно искал.
Некоторые люди не поняли вопрос: Имеет ли ArrayList клон? (что является основным вопросом, на который я смотрю). Если не так, почему String действительно клонируется?
его клон это не распространяется. В этом случае вы просто замечаете, что 'String' является неизменным. – SomeJavaGuy
Поскольку String неизменен! – Shriram
Непрерывность строки. Следующее - хорошее чтение по теме: http://stackoverflow.com/questions/1552301/immutability-of-strings-in-java –