


변수는 기본타입, 참조타입으로 나뉜다.
ram은 stack, heap
모든 지역 변수는 stack이 쌓인다.
stack 과 heap은 메모리 소멸시점이 다르다.
int arr 하는 순간 stack 참조변수 생성 (arr 은 변수명)
new int 하는순간 heap메모리에 생성
heap은 주소값이 있다.
stack에 heap의 주소값이 들어간다.
[ ] 는 접근 연산자 (어딘가에 접근하겠다..)
즉 arr stack에서 heap에 접근해서 값이 바뀜
arr에있는게 인덱스에 접근해서 70으로 바꾸겠다.
stack 메모리는 스코프를 빠져나갈때 소멸
heap 메모리는 메모리를 가르키는 메모리가 없을때 소멸 (가르키는 메모리 : 참조타입)

스코프를 빠져 나가면 주소와 arr 소멸
즉, 스택에서 arr이 소멸되면 heap에서도 소멸
참조타입인지 아닌지 확인하는법
arr = null;
int a = null; < - 이건 안됨.
null이란 아무데도 가르키지 않는값이다.
즉 참조타입인지 알아볼려면 arr = null; 을 넣어보면 됨.
arr 메모리에 null을 넣으면 heap에 있는것 다 소멸(가르키는 참조값이없을때)
null은 무가아니다. 아무데도 가르키지 않는값.
C언어는 arr 메모리에 null 넣어도 heap에있는 값이 안사라짐
int[] arr = new int[3];
arr = new int[5]; // 문법적으로 이렇게 한번더 가능

이렇게 되면 OXFF11이 소멸됨.


맨 마지막에 스코프를 빠져나가면 arr도 소멸되니까 heap 영역에 있는것도 연쇄적으로 소멸됨


지역변수면 무조건 steak


즉, arr1 과 arr2 이 가르키는 메모리가 똑같다.

if문이 끝나면 arr2가 소멸

int 값을 담을 수 있는 메모리의 개수는 12개
0~2 행
0~3 열



heap의 맨윗줄은 참조값이 들어간다.

사실상 이중배열이지만 일중배열이 여러개있는것이다.
1중배열4 개짜리가 3개만들어짐
ex)
int[][] arr = new int [3][4];




향상된 for문 : foreach문
for ( 변수 선언 : 배열) {
}
배열쪽은 반복가능한것 들어가면됨
예제 배열 문제---------------------------------------------------------------------------------------------------------------------------------------------




이어


'바닥부터 시작하는 프로그래밍 > 국비JAVA' 카테고리의 다른 글
| 12일차(클래스, 인스턴스) (0) | 2024.03.20 |
|---|---|
| 11일차(학생 관리 프로그램 만들기- 정보입력,목록 출력, 검색, 삭제, 통계, 종료) (0) | 2024.03.19 |
| 8일차_2 / 9일차 코테관련 문제풀이 (0) | 2024.03.14 |
| 8일(반복문 for 및 for관련문제 풀이) (0) | 2024.03.14 |
| 7일차_2 (조건문, 반복문) (Scanner , Math.ramdom) (0) | 2024.03.13 |