Java 기초지식

ella·2022년 7월 21일
0

Java 기초지식

Java 애플리케이션 실행 과정

  1. Compiler 가 Java Source(.javac)를 Byte code(.calss)로 변환
  2. Class Loader가 Byte code를 Runtime Data Area(런타입 데이터 영역, 메모리)에 로드시킴
  3. 로딩된 Byte code가 Exceution Engine(실행엔진)에 의해서 실행되게 됨

Byte Code: JVM에서 실행되게끔 만들어진 자바 코드 .class

Java Memory 구조

스레드별: PC Register, JVM stack, Native Method stack
공통: Method Area, Heap

  • PC Register: 명령어
  • JVM Stack: 함수 매개변수, 지역변수, 리턴 정보
  • Native Method stack: Java 외에 언어 (C, C++ 등)로 작성된 코드들이 실행됨
  • Heap: 사용자가 사용하면서 생긴 데이터, 동적 할당
  • Method Area: 클래스별로 전역변수, 정적변수들, 메서드 정보들이 저장됨

가비지커렉션 (Garbage Collection, GC)

JVM에서 Memory 관리해주는 모듈

Heap Memory를 관리하기 위해서 불필요한 Memory 삭제
Mark and sweep 방식으로 Memory 에 있는 변수, 메서드들이 어디서 참조되고 있는지 확인해보고 참조되고 있는 영역이 없다면 삭제
이때, Thread가 잠깐 중단되기 때문에 성능이 떨어진다

0개의 댓글