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

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

바로가기

  • 홈
  • 카테고리

소셜

  • GitHub
  • Source Repository

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

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

클래스 로더 시스템

약 1분
GitHub에서 보기

클래스 로더 시스템

  • AppClassLoader

  • PlatformClassLoader

  • BootstrapClassLoader => 자바 코드에서는 참조할 수 없음 => JVM 마다 구현이 다름

  • 클래스 로더는 계층형 이다

  • 클래스 읽기

  • 부모가 읽으면 아래로 순차적으로 읽는다

  • 못 읽으면 ClassNotFoundException

로딩

  • 클래스 로더가 .class 파일을 읽고 적절한 바이너리 데이터를 만들고
  • 메소드 영역에 저장한다
  • 저장되는 정보는 다음과 같다
  • Fully Quailified Class Name (패키지 정보까지 포함한 클래스 이름)
  • 클래스, 인터페이스, Enum(이늄)
  • 로딩이 끝나면 해당 클래스 타입의 객체를 힙 영역에 저장
  • 예) Application.class

링크

  • Verify, Prepare, Reolve(optional)
  • 검증 : class 파일 형식이 유효한지 체크
  • Preparation : 클래스 변수(static)와 기본값에 필요한 메모리를 준비
  • Resolve : 심볼릭 메모리 레퍼런스를 메소드 영역에 있는 실제 레퍼런스로 교체

초기화

  • static한 변수들을 할당한다

제일 중요한 것 바이트 코드 => 바이트 코드가 있어야 돌아간다..

java 카테고리의 다른 글 보기수정 제안하기
목차
  • 클래스 로더 시스템
  • 로딩
  • 링크
  • 초기화
  • 제일 중요한 것 바이트 코드 => 바이트 코드가 있어야 돌아간다..