kkkkkkkkkkkk
kkkkk
kkkkkkkkkkkk
전체 방문자
오늘
어제
  • 분류 전체보기
    • CS & OS
    • Algorithms
    • Laguage
    • Book
      • 객체지향의 사실과 오해
      • Effective Java
      • Spring boot 와 AWS로 혼자 구현하는 ..
      • 도메인 주도 계발 시작하기
    • DB
    • Spring
    • Spring Boot
    • JPA
    • Git
    • Clean Code
    • HTTP

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 객체지향 프로그래밍
  • 책임
  • 응집도
  • 역할
  • 결합도
  • 설계 원칙

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
kkkkkkkkkkkk

kkkkk

[JAVA] JVM 구조
Laguage

[JAVA] JVM 구조

2022. 2. 11. 16:53

학습 내용

  • JVM 구조 이해

 

특징

  • 하드웨어 및 운영체제 독립성
  • 컴파일 된 코드의 작은 크기
  • 보안
  • 런타임에 다양한 메모리 영역 조작

 

 

클래스 로더

  • 컴파일 된 바이트 코드를 읽어와 메모리 영역에 배치
  • 영역 구분 
    • 로딩
      • 클래스 파일을 읽음
        • class, interface, enum, 메서드, 변수 를 메서드 ( Method ) 영역에 저장.
      • 로딩이 끝난 후 해당 타입의 객체를 Class 객체로 생성하여 힙 ( Heap ) 영역에 저장.
    • 링크
      • 클래스나 인터페이스를 JVM 으로 연결 후 실행
    • 초기화
      • staic 값을 초기화 및 변수 할당

 

 

 

메모리

  • 영역 구분
    • Thread 에서 자원 공유
      • 스택
        • Thread 마다 Runtime Stack 을 만들고 Stack Frame 을 push 한다.
          • Stack Trace
      • pc ( Program Counter )
        • Stack 의 Method 들의 주소 값을 알려준다.
      • Native Method Stack
        • 다른 언어의 Method 을 Native Method Stack 에 push 한다.
      • 힙 ( Heap ) 영역
        • 객체, 인스턴스 저장
      • 메서드 ( Method ) 영역
        • 클래스 수준의 정보 저장

 

 

'Laguage' 카테고리의 다른 글

[Java] Polymorphism in Java  (3) 2022.06.30
[Java] Java 에서 파일을 읽는 여러가지 방법  (0) 2022.06.26
[Java] What is Serialization in Java?  (0) 2022.06.24
[Java] ArchUnit 아키텍처 테스트에 대해 알아보자  (0) 2022.06.18
[JAVA] 스레드 ( Thread )  (1) 2022.02.08
[JAVA] Optional  (0) 2022.01.20
[JAVA] @애노테이션 ( Annotation )  (0) 2021.12.28
[JAVA] 열거형 ( enums )  (0) 2021.12.28
    'Laguage' 카테고리의 다른 글
    • [Java] What is Serialization in Java?
    • [Java] ArchUnit 아키텍처 테스트에 대해 알아보자
    • [JAVA] 스레드 ( Thread )
    • [JAVA] Optional
    kkkkkkkkkkkk
    kkkkkkkkkkkk

    티스토리툴바