객체 지향 프로그래밍(Object Oriented Programming)2 - 추상화(Abstraction)

2021. 10. 26. 10:59Java

현실의 객체가 갖는 속성과 기능은 추상화(abstraction)되어 클래스에 정의된다

클래스구체화 되어 프로그램의 객체(instance, object)가 된다.

 

클래스(class)

  • 객체를 정의해 놓은 것, 틀, 설계도
  • 객체를 생성할 때 사용
  • 데이터 타입
  • 관련 있는 변수와 함수를 묶어서 만든 사용자 정의 자료형

객체(instance, object)

  • 클래스를 구체화 한 것
  • 실제로 동작하는 것
  • 메모리에 생성된 데이터

객체 생성과 메모리 - JVM의 메모리 구조

 

class area

클래스 원형 로딩

  • Field 정보
  • Method 정보
  • 타입 정보
  • 상수 풀

 

method stack

메서드들 실행 공간

  • thread별로 별도 관리
  • 메서드 호출 순서대로 쌓임(후입선출)
  • 메서드 프레임에 로컬 변수도 쌓임
  • 로컬변수는 선언된 영역을 벗어나면 삭제 

 

heap

객체 저장 위한 영역

  • thread에 의해 공유
  • GC만 생성된 객체 제어

 


출처

https://88240.tistory.com/432

https://edu.goorm.io/learn/lecture/22108/%EA%B7%B8%EB%A6%BC%EC%9C%BC%EB%A1%9C-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EC%9E%90%EB%B0%94-%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5/lesson/1040499/%ED%81%B4%EB%9E%98%EC%8A%A4%EC%99%80-%EA%B0%9D%EC%B2%B4

https://steady-coding.tistory.com/305