CS/JAVA
-
1. 얕은 복사? 깊은 복사? 얕은 복사 : 본래 배열의 주소값을 가져옴 깊은 복사 : 본래 배열의 값(value)를 그대로 가져옴! 때문에 얕은 복사를 하면 복사하고 난 배열에서 값을 수정하면 본래의 배열도 수정됩니다! 반대로 깊은 복사는 전혀 별개의 배열이 새로 생기는 것이기 때문에 아무리 수정해도 본래 배열에는 영향이 없습니다. 간단히 그림으로 표현하면 아래와 같습니다. 얕은 복사와 깊은 복사 방식은 1차원이냐, 2차원이냐에 따라 또 나뉩니다. 2. 1차원 배열의 복사 - 원래 배열의 주솟값을 가져옴 int[] A = {1,2,3,4,5}; int[] B = A; 1. 직접 배열을 만들어 값을 할당 2. clone() 1. 직접 배열을 만들어 값을 할당하는 방식 int[] A = {1,2,3,4,5..
[JAVA] 얕은 복사 vs 깊은 복사1. 얕은 복사? 깊은 복사? 얕은 복사 : 본래 배열의 주소값을 가져옴 깊은 복사 : 본래 배열의 값(value)를 그대로 가져옴! 때문에 얕은 복사를 하면 복사하고 난 배열에서 값을 수정하면 본래의 배열도 수정됩니다! 반대로 깊은 복사는 전혀 별개의 배열이 새로 생기는 것이기 때문에 아무리 수정해도 본래 배열에는 영향이 없습니다. 간단히 그림으로 표현하면 아래와 같습니다. 얕은 복사와 깊은 복사 방식은 1차원이냐, 2차원이냐에 따라 또 나뉩니다. 2. 1차원 배열의 복사 - 원래 배열의 주솟값을 가져옴 int[] A = {1,2,3,4,5}; int[] B = A; 1. 직접 배열을 만들어 값을 할당 2. clone() 1. 직접 배열을 만들어 값을 할당하는 방식 int[] A = {1,2,3,4,5..
2022.10.05 -
1. 배경 알고리즘 문제를 푸는데,, Integer 객체를 비교하면서 무심코 "=="를 사용했습니다. 정석은 equals 함수를 사용해서 비교해야합니다. 그런데, "=="을 사용해서 풀어도 어떤 경우에 대해서는 원하는 대로 비교가 잘 되었습니다. 그래서, 이 문제를 디버깅 하면서 엄청 애를 먹었습니다.. 맞왜틀... 동기에게 "127인가.. 128까지인가는 비교된다"는 힌트를 얻고 검색을 했습니다. 2. Integer a = 10; 의 동작 과정 Integer a = 10; 위 코드의 동작 과정은 먼저 Integer a = Integer.valueOf(10); 코드로 auto-boxing 됩니다. Integer.valueOf 메소드를 자세히 들여다보면 /** * Returns an {@code Integ..
[JAVA] Integer == Integer로 값 비교하기1. 배경 알고리즘 문제를 푸는데,, Integer 객체를 비교하면서 무심코 "=="를 사용했습니다. 정석은 equals 함수를 사용해서 비교해야합니다. 그런데, "=="을 사용해서 풀어도 어떤 경우에 대해서는 원하는 대로 비교가 잘 되었습니다. 그래서, 이 문제를 디버깅 하면서 엄청 애를 먹었습니다.. 맞왜틀... 동기에게 "127인가.. 128까지인가는 비교된다"는 힌트를 얻고 검색을 했습니다. 2. Integer a = 10; 의 동작 과정 Integer a = 10; 위 코드의 동작 과정은 먼저 Integer a = Integer.valueOf(10); 코드로 auto-boxing 됩니다. Integer.valueOf 메소드를 자세히 들여다보면 /** * Returns an {@code Integ..
2022.09.14