List<Integer> l1 = new ArrayList<>();
l1.add(1);
l1.add(1);
l1.add(1);
/**
* 얕은 복사(주소값 복사)
* ---> 이제부터 l1, l2는 한 몸처럼 취급
*/
List<Integer> l2 = l1;
l2.add(1);
l2.add(1);
l2.add(1);
l2.add(1);
l2.add(1);
System.out.println("l1의 사이즈: " + l1.size());
System.out.println("l2의 사이즈: " + l2.size());
System.out.println("------------------------");
System.out.println("l1: " + l1);
System.out.println("l2: " + l2);
출력결과
직관적으로 생각하는 '복사'의 의미와 달라 조심
'Dev- > Java' 카테고리의 다른 글
자바 논리연산자 &, |와 &&, ||의 차이 (0) | 2019.04.14 |
---|---|
logger 변수 private static final 선언이유? (2) | 2019.03.25 |
싱글톤 객체 성능 향상 --> LazyHolder 사용 (0) | 2019.02.28 |
DB에 저장된 DATE, DATETIME 타입의 시간부분이 나오지 않을 때.. (TimeStamp) (0) | 2018.09.16 |
@SuppressWarning란? (0) | 2018.09.07 |