JAVA

[Java] return, new, 2차원 배열

SangRok Jung 2022. 5. 23. 10:57
반응형

 

return


return이 실행되는 시점에서 종료된다. 메인함수로 돌아간다. 어떠한 값을 전달해 줄 수 있다.


return t; : 값 t를 메인 함수 ~ 에 전달한다.

 

ex) main 함수에서 add() 함수로 jump 한다.

 

 

* call : 명령어의 제어권이 넘어가는 행위.

* jump : add() 함수를 call 해라

 

 

※ return 해석 맵

※ 메인 함수에서 a가 쓰여져도 add함수에서의 a와는 스코프가 다르기 때문에 다른 변수값으로 해석된다.

 

 

 

 

 

 

 

new


힙에 런타임으로 메모리를 잡기 위한 키워드

ex) new int[], new String

※ new 를 키워딩 하게되면 stack area에 Reference value 저장을 하여 heap에 있는 데이터를 불러 올 수 있게 한다.

▶ Reference value = 시작 정보

▶ 시작 정보 = 시작 주소 : 시작 정보가 더 정확한 말임.

※ 메인 함수에서 a가 쓰여져도 add함수에서의 a와는 스코프가 다르기 때문에 다른 변수값으로 해석된다.

 

 

 

 

 

 

 

2차원 배열


배열의 정의 : 어떤 Data Type을 T 라고 할 때, T가 n개 연속하여 할당되어 구성된 자료구조.

▶ 배열을 코딩할 시 무조건 n부터 파악한다.

int [] a = new int[12]

int [] b = new int[3][4]

위의 둘의 코드는 얼핏 같아 보이지만 데이터를 메모리에 자료구조를 다루는 방식이 다르기 때문에 같다고 할 수 없지만 할당하는 총 사이즈만 같다.

int [][] a = new int [2][4]

n(수) = 2

t(type) = int [4]

위의 코드에서 n은 2이며 T는 int[4]로 해석한다.

int [][][] b = new int [4][5][6]

n = 4

t = int [5][6]

위와 같이 위의 코드에서 n은 4이며 T는 int [5][6] 이다.

 

+ [3][4] 를 이용한 방식

 

 

 

※ 2차 배열을 구글링 하다 보면 이런 행과 열에 대한 그림들을 많이 볼 수 있는데 위의 해석은 마치 실제 사과를 보고 애플 로고라고 하는것 과 같다. 즉 그렇게 볼 수 는 있지만 그 해석이 맞는 해석이라고는 절대 할 수 없는 것이다. 그 이유는 가장 대표적으로 2차 배열을 행과 열로 해석한다면 5차 배열도 위의 그림 처럼 행과 열로 나타낼 수 있어야 하는데 그러지 못한다. 그러지 못하는 이유는 간단하다. 애초에 잘못된 해석이기 때문에 3차 배열 4차 배열과 같이 증가하는 배열을 위와 같은 그림으로 나타 낼 수 없는 것이다.

그래서 위와 같은 행과 열을 이용한 그림으로 배우게 되면 그 이상의 배열은 더 이해가 안되는것이다.

아래는 그림은 올바른 배열의 이해를 돕기위해 int[2][2]를 그림으로 그린 것이다.

int[2][2] 에서 n은 2이고 T는 int[2] 임으로 가운데 선을 크게 그음으로서 자료는 2개가 되고 그 안에 int[2]의 n은 2임으로 점선으로 자료를 2개 만들어 주어 총 4개의 자료가 만들어 졌다. 그리고 이 그림에서 오른쪽 2개의 자료를 왼쪽 하단으로 옮기게 되면 아래의 그림처럼 된다.

어디서 많이 본 그림이다. 맞다. 행과 열을 표현한 그림이다. 이렇게 행과 열을 이용한 그림 해석은 이런 해석이 나오게 되었는데 이것이 잘못된 해석이라는 것이다. 즉 배열을 해석하기 위해서는 n과 T에 대한 정확한 이해가 필요하다.

반응형

'JAVA' 카테고리의 다른 글

[Java] 패키지, 버블소트  (0) 2022.05.23
[Java] 배열 랜덤수 검사하기.  (0) 2022.05.23
[Java] 2차 배열 평균 구하기  (0) 2022.05.23
[Java] 배열 역순으로 저장하기.  (0) 2022.05.23
[Java] 참조형, String, Array  (0) 2022.05.23