Java
-
JVM의 구성요소 중, 데이터 영역에 대한 설명으로 아래의 내용들에 대해서 다루어 보도록 하겠다 Runtime Data Areas란 Runtime Data Areas의 구성 요소 스레드 별로 존재 PC Register JVM Stack Native Method Stack 스레드 공유 Method Area 상세 구조 Heap 상세 구조 Java8부터 달라진 점 Runtime Data Areas란 JVM은 Java 컴파일러가 컴파일한 ByteCode를 ClassLoader를 이용해 메모리(RuntimeDataArea)에 실행 가능한 상태로 적재한다. RuntimeDataArea는 JVM이 프로그램을 수행하기 위해 OS로부터 별도로 할당받은 메모리 영역이다. Runtime Data Areas의 구성 요소 Ru..
[JAVA] JVM 메모리 구조, 데이터 영역 ( Runtime Data Areas)JVM의 구성요소 중, 데이터 영역에 대한 설명으로 아래의 내용들에 대해서 다루어 보도록 하겠다 Runtime Data Areas란 Runtime Data Areas의 구성 요소 스레드 별로 존재 PC Register JVM Stack Native Method Stack 스레드 공유 Method Area 상세 구조 Heap 상세 구조 Java8부터 달라진 점 Runtime Data Areas란 JVM은 Java 컴파일러가 컴파일한 ByteCode를 ClassLoader를 이용해 메모리(RuntimeDataArea)에 실행 가능한 상태로 적재한다. RuntimeDataArea는 JVM이 프로그램을 수행하기 위해 OS로부터 별도로 할당받은 메모리 영역이다. Runtime Data Areas의 구성 요소 Ru..
2022.08.23 -
JVM은 ClassLoader를 이용해 필요한 Class를 Loading 한다 ClassLoader는 Class가 참조되는 순간 동적으로 Load 및 Link가 이루어지는 Dynamic Loading을 담당하는 주체이다 즉 JVM내로 Class를 Load, Link를 통해 적절히 배치하는 일련의 작업을 수행하는 모듈이라고 정의 내릴 수 있다 ClassLoader에서 Class를 Load 하는 시점에 따라 Load-Time Dynamic Loading과 Run-Time Dynamic Loading으로 구분된다 우선, 두 단어 모두 포함하고 있는 동적 로딩(Dynamic Loading)이 무엇인지 정의해보자 동적인 클래스 로딩 (dynamic loading) 런타임 시 JVM이 동적으로 참조할 클래스 로딩...
[JAVA] 로드타임, 런타임 동적로딩 (Load-Time, Run-Time Dynamic Loading)JVM은 ClassLoader를 이용해 필요한 Class를 Loading 한다 ClassLoader는 Class가 참조되는 순간 동적으로 Load 및 Link가 이루어지는 Dynamic Loading을 담당하는 주체이다 즉 JVM내로 Class를 Load, Link를 통해 적절히 배치하는 일련의 작업을 수행하는 모듈이라고 정의 내릴 수 있다 ClassLoader에서 Class를 Load 하는 시점에 따라 Load-Time Dynamic Loading과 Run-Time Dynamic Loading으로 구분된다 우선, 두 단어 모두 포함하고 있는 동적 로딩(Dynamic Loading)이 무엇인지 정의해보자 동적인 클래스 로딩 (dynamic loading) 런타임 시 JVM이 동적으로 참조할 클래스 로딩...
2022.08.10 -
Binding이란 무엇이고, Static, Dynamic Binding의 의미, 차이는 무엇일까? Binding Binding에 관련해서는 여러 가지 정의가 있다 찾아본 내용 중에 가장 의미가 잘 와닿는 부분으로는 " Association of method call to the method body " - 메서드 호출과 메서드 본문의 연결 다른 정의로는 아래의 내용이다 컴퓨터 프로그래밍에서 각종 값들이 확정되어 더 이상 변경할 수 없는 구속(bind) 상태가 되는 것. 프로그램 내에서 식별자(identifier)가 그 대상인 메모리 주소, 데이터형 또는 실제값으로 배정되는 것 그럼 이제 Binding의 정의가 무엇인지 대충 알았고 정적, 동적 Binding은 무엇인지 알아보자 Static Binding ..
[JAVA] 정적, 동적 바인딩 (Static, Dynamic Binding)Binding이란 무엇이고, Static, Dynamic Binding의 의미, 차이는 무엇일까? Binding Binding에 관련해서는 여러 가지 정의가 있다 찾아본 내용 중에 가장 의미가 잘 와닿는 부분으로는 " Association of method call to the method body " - 메서드 호출과 메서드 본문의 연결 다른 정의로는 아래의 내용이다 컴퓨터 프로그래밍에서 각종 값들이 확정되어 더 이상 변경할 수 없는 구속(bind) 상태가 되는 것. 프로그램 내에서 식별자(identifier)가 그 대상인 메모리 주소, 데이터형 또는 실제값으로 배정되는 것 그럼 이제 Binding의 정의가 무엇인지 대충 알았고 정적, 동적 Binding은 무엇인지 알아보자 Static Binding ..
2022.08.06 -
Java ClassLoader에 대한 설명으로 아래의 내용들에 대해 다루어 보도록 하겠습니다. ClassLoader 정의 ClassLoader 원칙 (특징) ClassLoader 계층 구조 ClassLoader 로딩 단계 ClassLoader 정의 ClassLoader는 JVM의 구성요소 중 하나로, '.class' 바이트 코드를 읽어 들여 class 객체를 생성하는 역할을 담당한다. 즉, 클래스가 요청될 때 class파일로부터 바이트 코드를 읽어 메모리로 로딩하는 역할 자바 클래스들은 한 번에 모든 클래스가 메모리에 올라가지 않는다. 각 클래스들은 필요할 때 애플리케이션에 올라가게 되며, 이 작업을 클래스로더가 해주게 된다. 예를 들어 간단한 Class의 main문을 실행할때, load 되는 class..
[JAVA] ClassLoader란, 원칙, 계층구조, 로딩단계Java ClassLoader에 대한 설명으로 아래의 내용들에 대해 다루어 보도록 하겠습니다. ClassLoader 정의 ClassLoader 원칙 (특징) ClassLoader 계층 구조 ClassLoader 로딩 단계 ClassLoader 정의 ClassLoader는 JVM의 구성요소 중 하나로, '.class' 바이트 코드를 읽어 들여 class 객체를 생성하는 역할을 담당한다. 즉, 클래스가 요청될 때 class파일로부터 바이트 코드를 읽어 메모리로 로딩하는 역할 자바 클래스들은 한 번에 모든 클래스가 메모리에 올라가지 않는다. 각 클래스들은 필요할 때 애플리케이션에 올라가게 되며, 이 작업을 클래스로더가 해주게 된다. 예를 들어 간단한 Class의 main문을 실행할때, load 되는 class..
2022.08.02