카테고리 없음

[Java] this 예약어와 메모리

321 2021. 1. 19. 17:26

 

클래스 선언


public class Person {
    String name;
    int age;
    int height;
    
    public void setAge(int age) {
    	this.age = age;
    }
    
    public void print(){
    	System.out.println(this);
    }
    
}

 

실행


public class Test{

	public static void main(String[] args){
    	Person p1 = new Person();
        
        p1.setAge(28);
        //28 => this.year
        p1.print();
    			
    }
}

 

이때 p1을 생성자로 새로 만들면 heap메모리에 추가됨

 

두 함수의 실행과정

 

생성자가 heap에 자리하고 만약 System.out.println(p1.age) 나 System.out.println(p1.print)를 실행하면

heap에 생성된 주소 (0x01)을 출력한다.

 

 


 

2024. 07. 21 추가

String Name을 대문자로 선언한 것은 그림이라서 수정되지도 않는다;

new 생성자는 메모리(heap)에서 생성되고, 메모리 범위 내에서 this가 결정된다.