JAVA 16강

주바나·2023년 3월 3일
0

JAVA 기초

목록 보기
2/16

16강

객체가 메모리에 위치하는 형태, 지역변수로 객체를 가리키는 형태, int배열은 객체의 일종이다.

int a = 50;
int b = a; // 50은 2군데에 저장되어 있다.(a와 b)

int[] arr1 = new int[3]; // 객체가 힙에 생성되고 그 객체의 리모콘이 arr1 변수에 저장된다.
int[] arr2 = arr1; // 객체가 2개가 된게 아니라 리모콘만 2개가 되었다.
int[] arr1 = new int[3];//여기서 arr1은 기본형인가 참조형인가? 참조형이다. 
//-> 왜냐면 int[]가 그 기본형 8개에 속하지 않으니까. 
//기본형 8개 에 있는것에는 int지 int[]가 아니다.

String s="하하";와 int[] arr1 = new int[3]; //크기는 같다. 왜냐? 참조형이니까

int[] arr1 = new int[3];

new->객체 생성하는것.
new 뒤에는 설계도가 나온다.(int[3]이 설계도임. 이 설계도대로 객체를 만들겠다.) - 이 설계도는 객체 안에 내장되어있다.
객체는 무조건 heap(힙)에 저장된다.

class Main {
	public static void main(String[] args){
		int a=50; //a는 지역변수다 .함수(Main함수) 선언된 변수는 무조건 지역변수/ 모든 지역변수는 stack에 쌓인다.
		int[] arr= new int[3];//int[] arr도 지역변수다. 함수 안에서 만들어졌기 때문
         }
      }

-> 이걸 실행하면

이렇게 되는거임

객체를 만들면 객체 안에 객체를 조종할 수 있는 리모콘이 생긴다. 그걸 this라고 했을 때, 스택에 있는 arr에 this의 복사본이 생성된다.
-> 객체를 조종할 수 있는 리모콘 두개 생김.(검정네모)
자기 외부에 자신을 조종할 수 있는 리모콘은 한 개.

기본형 타입 값 5,5.5,’d’,false 이런거 빼고 다ㅏㅏㅏ객체다. 위에 그림처럼 생겼음


맨 마지막줄의 arr1에는 객체가 들었을까 리모콘이 들어있을까? -> 리모콘이 들어있음.


arr1의 리모콘이 또 복사되서 arr2로 감.

class Main{
	public static void main(String[]args){
    	int a=50;
        int b=a;
        }
      }

여기까지 실행되면세 상에 객체는 몇 개? 1개.
실제로 객체가 복사된게 아님. 참조형 변수는 아무리 이렇게 복사를해도 객체는 그냥 그대로 있는거임. 객체는 복사할 방법이 없음. 객체를 조종하는 리모콘만 두개가 된거임.

arr1[0]=10;
arr1[1]=20;
arr1[2]=30;

arr1에 바로 10이 저장되는 것이 아니라 arr1이 가르키는 공간의 첫번째 칸에 10이 저장되는 것.

profile
BE -JAVA,Spring boot

0개의 댓글