📚FOS Study
홈카테고리
홈카테고리
📚FOS Study

개발 학습 기록을 정리하는 블로그입니다.

바로가기

  • 홈
  • 카테고리

소셜

  • GitHub
  • Source Repository

© 2025 FOS Study. Built with Next.js & Tailwind CSS

목록으로 돌아가기
☕java/ 더_자바_코드를_조작하는_다양한_방법

JVM 구조

약 1분
GitHub에서 보기

JVM 구조

  • JVM은 크게 4 덩어리로 구성된다
  • javap => 자바 바이트 코드를 읽는 파일

클래스 로더 시스템

  • 클래스에서 바이트코드를 읽고 메모리에 저장

메모리

  • 메소드 영역에는 클래스 수준의 정보를 저장 (클래스 이름, 부모 클래스 이름)

  • MyApp.class.getSuperClass() => 부모 클래스를 가져오기

  • 메소드 영역의 자원은 공유하는 자원이다

  • 힙 영역에는 객체를 저장 한다

  • 힙 영역의 자원은 공유하는 자원이다

  • 클래스를 로딩만해도 App.class 객체가 만들어진다

  • 클래스의 인스턴스들이 모두 저장된다

  • 스택, PC, 네이티브 메소드 스택 => 스레드마다 생긴다

  • 스택 => 메소드 콜 스택

  • PC => 어느 메소드를 가르키는지 포인터 역할

  • 네이티브 메소드 스택 => 네이티브 메소드를 사용할 때 별도로 사용하는 스택 => JNI

  • Thread.currentThread() 자바로 구현된 메소드가 아님 C, C++로 구현된 native 메소드

  • 네이티브 메소드 라이브러리 => 네이티브 메소드 인터페이스 => 네이티브 메소드 스택

실행 엔진

  • 인터프리터 : 바이트 코드를 한줄 씩 실행

  • 한 줄마다 바이트 언어를 네이티브 코드로 해석하여 실행

  • JIT 컴파일러 : Just In Time 반복된 코드를 찾아서 모두 네이티브 코드로 바꿔둔다

  • 프로그램 속도 향상

  • Garbage Collector : 더 이상 참조되지 않는 객체를 제거

java 카테고리의 다른 글 보기수정 제안하기
목차
  • JVM 구조
  • 클래스 로더 시스템
  • 메모리
  • 실행 엔진