TIL-6

allnight5·2022년 11월 30일
1

TIL

목록 보기
6/55
  • JDK
    자바 개발 시 필요한 툴킷을 제공하는 도구모음입니다. 개발하려면 당연히 실행도 시켜야하므로 JDK 안에 JRE가 포함되어 있습니다.(JVM도 포함되어있다, JRE가 JVM을 가지고 있으니 말이다.)

  • JRE
    자바 프로그램을 실행시켜주는 환경을 구성해주는 도구입니다. 즉 JAVA를 개발할 필요는 없지만, 실행은 시켜줘야 하는 경우에는 꼭 JRE가 있어야합니다

  • JVM
    JVM은 스택 기반 가상 머신이며 효율적인 연산과 메모리 사용이 가능하다.

  • 클래스 로딩(Java Classloader에 의해서 이루어진다)
    Java에서 클래스가 로딩 과정은 클래스 로더(Class Loader)가 확장자가 .class 클래스 파일의 위치를 찾아 그것을 JVM위에 올려놓는 것

  • static initialize
    정적 초기자 영역의 코드는 단 한번만 실행된다.(2가지 기준에 따라)

  • Runtime Data Area
    OS가 JVM에 할당해준 메모리 영역을 Runtime Data Area라고 부른다.

  • Method Area(Static Area)
    코드에서 사용되는 클래스 파일을 클래스로더로 읽어 클래스별로 런타임 상수풀, 필드 데이터, 메소드 데이터, 메소드 코드, 생성자 코드 등을 분류해서 저장한다.

  • Heap
    JVM이 관리하는 프로그램에서 데이터를 저장하기 위해 런타임시 동적으로 할당하여 사용하는 영역

  • Stack(Java Threads, Java Stack, JVM Stack)
    Thread 의 Method 가 호출될 때의 수행 정보와 같은 StackFrame 의 정보, 메서드 호출 주소, 매개변수, 지역변수와 같은 수행 정보를 나타낸다.

  • 실행 엔진

  • GC

    객체가 쌓이면 쌓일수록 도달 불가능한 객체는 날라가고, 살아남은 객체도 오른쪽으로 나이를 먹으며 밀려난다는 겁니다. 그리고 나이를 많이 먹은 객체는 결국 Promotion으로 Old Generation에 위치하게 되고 major GC가 일어나면 오래된 객체들이 날라간다

profile
공부기록하기

0개의 댓글