자바의 메모리 구조

Untitled

꼬리질문 1. Static이란 뭔가요??

정적(static)은 고정된이란 의미를 가지고 있습니다. Static이라는 키워드를 사용하여 Static변수와 Static메소드를 만들 수 있는데 다른말로 정적필드와 정적 메소드라고도 하며 이 둘을 합쳐 정적 멤버라고 합니다.(클래스 멤버라고도 합니다.) 정적 필드와 정적 메소드는 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버입니다. 그렇기에 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할때 클래스별로 관리됩니다. 따라서 클래스의 로딩이 끝나는 즉시 바로 사용할 수 있습니다.

static 키워드를 사용한 변수나 메소드는 클래스가 메모리에 올라갈 때 자동으로 생성되며 클래스 로딩이 끝나면 바로 사용할 수 있습니다.

즉, 인스턴스(객체) 생성 없이 바로 사용 가능합니다.

모든 객체가 메모리를 공유한다는 특징이 있고, GC 관리 영역 밖에 있기 때문에 프로그램이 종료될 때까지 메모리에 값이 유지된 채로 존재하게 됩니다.

다형성이란?

Java에서는 부모 타입은 물론이고, 자신을 기준으로 모든 자식 타입을 참조 할 수 있습니다. 이것이 바로 다양한 형태를 참조할 수 있다고 해서 다형적 참조라고 합니다. 다형성 참조의 핵심은 "부모는 자식을 품을 수 있다는 것"입니다.

꼬리질문 1. 메서드 오버라이딩?

Final이란?