2024/03/03 2

[Java] 자바 가상 머신 (JVM, Java Virtual Machine)

JVM과 그 역할 JVM(Java Virtual Machine)은 자바 프로그램이 어느 기기나 운영체제 상에서도 실행될 수 있도록 하기 위해 물리적 머신과 유사한 머신을 소프트웨어로 구현한 것으로, 다양한 역할을 한다. 개발자들은 보통 JVM을 '어떤 기기상에서 실행되고 있는 프로세스, 특히 자바 앱에 대한 리소스를 대표하고 통제하는 서버' 라고 말한다. JVM의 역할 Java와 OS사이에서 중개자 역할을 수행하여, Java가 OS에 구애받지 않고 독립적으로 작동 가능하도록 한다 자바 애플리케이션을 클래스 로더를 통해 읽어들여 자바 API와 함께 실행한다 메모리 관리와 Garbage Collection을 수행한다 JVM의 구조와 작동 원리 JVM의 구조 Java Compiler (JAVAC) 자바 소스코..

Java 2024.03.03

[Java] 고유락(Intrinsic Lock)과 동기화(synchronization)

동기화란? 멀티 스레드 환경에서는, 공유된 자원(변수나 객체 등)에 대해 여러 스레드가 동시에 접근하면서 예상치 못한 결과가 발생할 수 있다. 예시를 통해 알아보자 // Runnable을 구현해서 스레드 정의 public class RunnableThread implements Runnable{ private final Number number; public RunnableThread(Number number) { this.number = number; } @Override public void run() { number.updateNum(); System.out.println("update End"); } } // 공유된 자원 public class Number { private long num = 0..

Java 2024.03.03