[java] 클래스와 인스턴스

클래스와 인스턴스

클래스

  • 인스턴스를 생성하기 위한 틀
  • 클래스 자체만으로는 상태가 없다.
  • 클래스 메서드
    • 인스턴스의 상태와는 관련이 없다. 
    • 인스턴스를 생성하지 않은 상태에서도 호출이 가능하다.
    • 클래스 메소드는 유틸리티 메소드라고 부른다.
  • 클래스 필드
    • 여러 인스턴스에서 공유하는 정보가 있는 경우 사용한다. 

인스턴스

  • 단수 의미로의 객체
  • 클래스를 통해 실체화되어 생성된다.
  • 인스턴스는 상태를 가지며, 메서드를 통해 인스턴스의 상태가 변경된다.

 

  • 인스턴스 메서드
    • 인스턴스의 상태를 변경하거나 상태 정보를 반환할 때 사용하는 메소드
    • 인스턴스를 생성한 후 메시지를 보낼 수 있다.
  • 인스턴스 필드
    • 인스턴스의 상태 정보를 가지고 있는 변수
    • 상태변수라고도 이야기 한다.

 

메모리 구조

클래스 필드와 메소드

  • 클래스 필드와 메소드는 MehodArea에 존재한다.
  • 클래스가 로더 될 때 메모리 할당을 함으로 따로 인스턴스를 만들지 않아도 사용이 가능하다.

 

인스턴스 필드와 메소드

  • 주소값을 담은 인스턴스 객체는 Stack영역에 생성된다.
  • 실제 객체의 데이터를 담은 메모리는 new 연산자를 통해 Heap영역에 생성된다.

 

참고

https://www.youtube.com/watch?v=UzaGOXKVhwU 

 

https://www.youtube.com/watch?v=AWXPnMDZ9I0&t=10s 

 

  • 더 읽어보기

 

https://catch-me-java.tistory.com/9?category=438116 

 

[Java-1] 컴파일 방법 & 과정

JAVA를 사용하기에 앞서, JVM은 무엇이며 자바 코드는 어떻게 실행 되는지에 대해서 알아보는 과정을 가져보도록 합시다. 이 과정을 알아보기전에 몇가지에 대해서 짚고 넘어가도록 하자 1. 시작 J

catch-me-java.tistory.com

 

'study' 카테고리의 다른 글

[java]JVM JRE JDK  (0) 2021.06.17
내가 만난 CORS 관련 문제  (2) 2021.06.14
[JAVA] Optional  (0) 2021.05.15
Spring DI  (0) 2021.04.30
Spring 동작원리  (2) 2021.04.30

댓글



Designed by JB FACTORY