반응형
- 주소공유 개념
- 메서드 주소공유의 핵심
- 변수는 값이 안 바뀜
- 배열은 바뀜


- 배열은 주소공유 개념이다.
- 변수의 대 원칙
- 1개에 1개만 저장 가능하다.



- int[] arr = new int[3]
- int[] arr = {1,2,3}; //변수가 4개이다.
- 위의 2개는 같은 말이다.
- new는 힙에 있다. 2번째 칸 e
- = new => 주소가 저장이 된다.
- 1번째 메모리는 머리
- 2번째 힙은 몸통
- 즉 몸통에 =new는 주소가 저장
- = 값이 저장
- = new는 주소가 저장이 된다.
- 변수가 5개라는 사실
- 얕은 복사 / 깊은 복사
- 용어에 심취하면 안된다.
- 용어는 기술을 만들고 이름을 같다 붙인것
- 함수 메서드에서 깊은 복사를 하게 되면. 불필요하게 메모리를 많이 쓰게 된다.
- 모두 앝은 복사로 데이터를 옮기게 되어 있다.
- jsp 파일이 많다.
- session 계속 꺼내 쓴다
- 데이터를 낭비함
- 그래서 얕은 복사로 꺼낸다.
- 실제로는 배열 한개만 만들고
- 배열은 2번째 힙에 몸통에 저장되어있고
- 배렬은 주소. 즉 머리에 대한 주소가 있으니
- 머리에서만 꺼내는 거다.
- 원리만 알면 된다.
- 배열은 바뀐다.
- 변수는 바뀌지 않는다.
- 주소 공유
- 함수에 들어가서 바뀐게
- 즉 배열이 바뀐게 주소 공유이다.


- 리턴변수 개념
- 리턴은 함수를 강제 종료 시킨다.

- 변수의 값을 바꾸고 싶은데 어떻게 하냐.
- 리턴을 사용하면 된다.
- 리턴이 2가지 역할
- 함수를 끝내는 역할
- 되돌려 주는 역할
- 지금까지는 실행하고 끝났다.
- 결과물을 밑에다가 전달하고 싶으면 리턴을 사용하면 된다.


- 함수할때 하는 얘기
- 함수는 어떤 기준으로 만드나요
- 못 만든다. 학생은 그냥 있는 예제만 외워도 충분하다.
- 만드는 기준 : 그냥 이름을 지을 수 있으면 만드는 것
- 제대로 된 프로그램을 만들어야 함수가 필요한 것

- 주소공유 문제

- 주소공유가 어디서 되나
- 토탈이 바뀌는 거다.
- solution (student,total)
- 이게 함수에 들어가서
- total은 원래 0 0 0 이었는데
- total 배열이 바뀌는 것

- 리턴 변수 문제


- 리턴 사용하는 이유
- 그냥 코드 간결하게 할려고
- 리턴을 사용하지 않았을때는 위에서만 출력할 수 있었다.
- 리턴을 사용하면. 밑에서도 출력이 가능하다.


- 리턴을 사용하지 않았을때.

반응형
'코딩 > 2-JAVA' 카테고리의 다른 글
| B0401클래스와메서드 (0) | 2025.04.09 |
|---|---|
| B0307리턴배열_개념 ~ B0308리턴응용_개념 (1) (0) | 2025.04.09 |
| B0302메서드반복문_개념 ~ B0304메서드이차배열_개념 (0) | 2025.04.09 |
| B0301메서드_개념 (0) | 2025.04.08 |
| B0203클래스와정렬 ~ B0204클래스와데이터실습 (0) | 2025.04.08 |