아래 글은 공부를 위해 객체지향의 원리 및 이해를 정리한 것 입니다.

 

📃 참고자료

 

스프링 입문을 위한 자바 객체 지향의 원리와 이해

COUPANG

www.coupang.com

 

 

# 접근 제어자(Access Modifier)

접근 제어자는 클래스, 메서드 및 기타 멤버의 액세스 가능성을 설정하는 객체 지향 언어의 키워드입니다. 

구성 요소를 캡슐화 하는 데 사용되는 프로그래밍 언어 구문의 특정 부분입니다.

 

 

자바에는 다음과 같은 접근 제어자가 있습니다.

  • private
  • default
  • protected
  • public

 

 private ▶ default ▶ protected ▶ public 순으로 보다 많은 접근을 허용합니다.

 

반응형

아래 글은 공부를 위해 객체지향의 원리 및 이해를 정리한 것 입니다.

 

📃 참고도서

 

스프링 입문을 위한 자바 객체 지향의 원리와 이해

COUPANG

www.coupang.com

 

 

 

# 프로그램이 메모리를 사용하는 방식

코드 실행 영역 데이터 저장 영역

 

 

# 객체지향 프로그램의 메모리 사용 방식

코드 실행 영역 스태틱(Static) 영역
스택(Stack) 영역 힙(Heap)영역

 

 

 

# main() 메서드: 메서드 스택 프레임

 

- main() 메서드는 프로그램이 실행되어 시작되고 끝나는 곳이다.

 

public class Start {
	public static void Main(String[] args) {
		System.out.printIn("Hello OOP!");
	}
}

 

위 코드가 실행 될 때 메모리 변화

스태틱 영역 - 클래스들의 놀이터
스택 영역 - 메서드들의 놀이터 영역 - 객체들의 놀이터

* 책의 저자는 위 메모리 구조가 T자와 같다고 해서 T메모리라고 부른다.

 

 

main() 메서드가 실행 되기 전 JVM에서 수행하는 전처리 작업들

  1. java.lang 패키지를 T 메모리의 스태틱 영역에 배치한다.
  2. import된 패키지를 T 메모리의 스태틱 영역에 배치한다.
  3.  프로그램 상의 모든 클래스를 T 메모리의 스태틱 영역에 배치한다.

 

 

  • main() 메서드가 돌기 위해 스택 프레임(Stack frame)이 스택 영역에 할당
    => 메서드들의 놀이터는 스택(Stack)
  • 2번째 줄의 블록 시작 기호인 여는 중괄호를 만났을 때 main() 메서드의 스택 프레임이 생긴다.
    => 반대로 닫는 중괄호를 만나면 스택 프레임이 소멸된다.

 

 

  • 메서드의 인자 args를 저장할 변수 공간을 스택 프레임의 맨 밑에 확보한다.
    => 메서드 인자(들)의 변수 공간을 할당

  • JRE는 눈에 보이지는 않게 뒤에서 JVM이라고 하는 자바 가상 기계를 부팅하고,
    JVM은 메모리 구조를 만들고 거기에 java.lang패키지 로딩, 각종 클래스 로딩, main() 메서드 스택 프레임 배치,
    변수 공간 배치 등등의 일을 처리
  • System.out.printIn("Hello OOP!") 구문이 실행 되면 T 메모리에는 변화가 없다.
  • 메모리에는 코드 실행 공간은 별도로 있다.
  • System.out.printIn() 구문이 코드 실행 공간에서 실행되면 GPU(그래픽 처리 장치)에 화면 출력을 의뢰한다.
    => 이때 데이터 저장 공간인 T 메모리에는 아무런 변화가 없다.

 

 

 

반응형

+ Recent posts