본문 바로가기

전체 글29

04-2.ArrayCopy(깊은 복사) ArrayCopy - 2 얕은 복사에 이어서 깊은 복사에 대해서 알아보자 깊은 복사와 얕은 복사의 가장 큰 차이점은 원본 배열에 영향을 미치는 지에 대한 여부이다. 얕은 복사는 복사본 배열의 값을 수정하면 원본 배열의 값도 바뀌지만 깊은 복사는 복사본 배열의 값을 수정하면 원본 배열의 값은 바뀌지 않는다. 얕은 복사를 메모리 영역으로 생각하면 깊은 복사를 하게 되면 그림과 같이 arr2처럼 주소값이 아예 새로운 배열이 생성된다. 깊은 복사를 하는 방법은 크게 4가지가 있다. 1. for문 사용 for문을 사용하는 방식은 원본 배열과 복사본 배열을 각각 선언 한 후 for문을 사용해서 원본 배열의 값을 복사본 배열에 각각 대입을 해주는 방식이라 이해하면 되겠다. 애초에 각각 배열을 선언하기 때문에 다른 주.. 2023. 7. 17.
04-1.ArrayCopy (얕은 복사) ArrayCopy ArrayCopy를 배우면서 Stack, Heap에 관련된 메모리 영역을 처음으로 접하게 되었었는데 그와 같이 배웠던 것이 주소값과 관련된 내용들이었다. 깊은 복사와 얕은 복사를 다시 정리하지 않으면 배열에 대해서 응용을 잘 못할 것 같아 지금 다시 정리해보겠다! - Stack 영역과 Heap 영역 최초에 배열이 생성되면 Stack 영역에 배열의 주소값이 할당되고 Heap 영역에는 배열의 인덱스값이 저장된다. Stack영역에 주소값이 저장돼서 Heap영역에 인덱스를 참조하는 방식이다. 이 부분이 배열의 복사를 이해할 때 가장 중요한 부분이라 생각하기 때문에 항상 메모리 영역에 대한 이해가 필요할 것 같다. 메모리에 관련한 Remind 게시물도 조만간 정리해서 올려야겠다. 1. 얕은 복사.. 2023. 7. 17.
03. continue 반복문 안에 기술되는 구문은 두가지로 나눌 수 있다 첫번째 break 쉽게 설명해서 반복문을 벗어나는 역할을 하는 구문이다. 두번째는 오늘 복습해볼 continue 자바를 배울때도 말로 설명을 들으면서나 직접 실습을 해보면서도 응용하는 데 애를 먹었던 기억이 있는데 오늘 다시한번 복습 차 정리와 코드를 작성해봐야겠다. Continue? 학원을 다니면서 이해했던 방법은 반복문 내에서 continue가 나오면 밑에 내용은 싸그리 무시하고 다시 위로 올라가는 것으로 이해했다. 그렇지만 막상 적용해보려고 할 때 이해력이 부족했던건지 이해가 잘 되지 않았었다. 아무튼 continue를 간단한 실습코드와 함께 기억을 돌이켜보자 1. 1~10까지 홀수만 출력하기 사실 방법은 여러가지가 있을 수 있지만 continue.. 2023. 7. 12.
02.while / do-while 자바를 배우면서 반복문을 쓸 일이 참 많았었다. 반복문 중에서 for, while을 많이 썼었지만, do-while문도 있었는데 사실 프로젝트를 하거나 그 외 코딩테스트 연습을 하는데서도 사용하지는 않았었다. 그렇지만 복습을 하는 중에서 do-while문을 기억해보려했는데 기억이 잘 나지 않았으므로 2번째는 while과 do-while을 비교해보면서 do-while의 개념을 다시 잡아보도록 하겠다. 1. while while문을 간단하게 생각하면 조건을 만족하는 동안 실행할 코드를 반복하는 것이다. 코드로 간단하게 표현하면 으로 나타낼 수 있는데 이를 이용해서 간단하게 1부터 5까지 출력하는 코드를 작성해보고 결과를 확인해보면 다음과 같이 나타나는 것을 알 수 있다. 저기서 i++과 같이 후위연산식을 같.. 2023. 7. 12.
01.Scanner Scanner? 처음 국비교육을 들었을 때 변수 다음으로 배우게 된 개념! 콘솔창에 사용자가 값을 입력하면 그 값을 받아들이는 개념으로 당시에 기억했다. 배울 당시에는 무난무난하게 사용하고 실습했던 기억이 있지만 Remind하자는 목적으로 당시 코드를 사용하면서 복습을 해보자! Scanner 기능을 사용하기 위해 java.util.Scanner를 import 했다. Scanner 기능을 사용하기 위해선 java.util 패키지의 Scanner를 import 해야한다. Scanner 객체 생성 후 콘솔창에는 어떻게 출력이 되게 될까? 결과는? 내가 입력한 내용은 이런 글씨색으로 나타나고 그 결과 입력한 내용이 출력되는 것을 확인 할 수 있다. 그런데 여기서 nextLine()은 무엇이었을까? nextXXX.. 2023. 7. 9.