To-do list

JVM이란?

  • 메모리 영역을 공부하기전 간단하게 JVM에 대해서 알아보자.

JVM 이란 Java Virtual Machine의 약자이며, 자바 가상 머신이라고 불리운다.

Java의 바이트 코드를 해석하고 실행하는 역할을 한다.

OS에 상관없이 실행할 수 있는것이 장점이다. (JVM 설치만 하면 어떤 운영체제에서든 java 파일을 실행할 수 있다.)

○ JVM 실행 순서

1..java 파일을 컴파일러(Compiler)를 통해 .class 파일로 변환한다.
2..class 파일을 JVM 의 ClassLoader(클래스로더)에게 보낸다.
3.클래스로더에서 JVM 런타임 영역으로 로딩(할당)하여 메모리에 올린다.
○ JVM의 RunTime Data Area(런타임 데이터 영역)

  • Java 메모리 영역을 알기 위해선 런타임 데이터 영역에 대해서 알아야한다.

클래스 로더가 .class 파일을 이 영역에 올리기 때문이다.

런타임 데이터 영역에는 5가지 영역이 존재한다.

1.Static Area(Method Area)
2.Heap Area
3.Stack Area
4.PC Register
5.Native Method Stack

Java의 메모리 영역

  • 자바 프로그램을 실행 하게되면 JVM(Java Virtual Machine)은 OS 로 부터 메모리를 할당 받는다, 할당 받은 메모리를 자바 프로그램에 맞게 여러개의 영역으로 나누어 사용하게 된다.
  • 각 영역은 목적에 맞게 사용되고, 어플리케이션의 성능에 영향을 미친다. 같은 기능을 하는 어플리케이션 일지라도, 메모리 관리에 따라 성능에 차이가 생긴다는 이야기다. 메모리를 관리하지 않고 구성하게 된다면 StackOverFlow 가 발생하여 어플리케이션이 종료될수도 있다는 말이다, 혹은 어플리케이션의 속도가 크게 저하 될수도 있다.
  • JVM의 메모리는 크게 3가지로 이루어져 있다.

Heap 영역.
Stack 영역.
Static(Method) 영역.

profile
코린이 개발공부

0개의 댓글