Java 3

[Java] java vs javac - 컴파일과 실행의 차이

Java를 공부하면서, 자바 실행 과정에 대해 공부했습니다.그러던 중 이름이 유사한 java와 javac명령어가 어떤 차이를 가지는지 궁금해졌습니다. 아래에서는 Java에서 사용하는 두 명령어인 javac와 java를 비교해보겠습니다. javac와 javaJava로 프로그램을 작성하고 실행하기 위해서는 단순히 소스 코드를 작성하는 것만으로는 충분하지 않습니다.작성한 코드를 컴파일(Compile)해서 실행 가능한 형태로 변환하고, 변환된 결과를 실행(Run)해야 비로소 프로그램이 동작합니다. 이 과정에서 사용하는 두 가지 핵심 명령어가 바로 javac와 java입니다.하나는 컴파일을 담당하고, 다른 하나는 실행을 담당하는 서로 다른 역할을 가지고 있습니다.아래에서 각각을 자세히 살펴보겠습니다. 1) ..

[Java] JVM 구조부터 자바 실행 과정까지

Java를 공부하면서 JVM, JRE, JDK, JIT의 개념을 하나씩 익히다 보니,네 가지 개념이 어떻게 다른지 조금씩 구분할 수 있게 되었습니다. 처음에는 이름이 비슷하여 헷갈렸지만, 개념이 정리되니 오히려 흥미롭게 느껴졌습니다.그러다 문득,"그렇다면 JVM 내부에서는 실제로 어떤 일이 벌어질까?" 라는 궁금증이 생겼습니다.그래서 이번 글에서는 JVM을 중심으로, 구조와 실행 과정을 한 번에 이해할 수 있도록 정리해 보았습니다. JVM이란?JVM(Java Virtual Machine)은 자바 바이트코드(.class)를 읽고 실행하는 가상 머신입니다.운영체제 위에 JVM만 설치되어 있다면, 동일한 바이트코드가 Windows, macOS, Linux 등 어떤 환경에서든 똑같이 동작합니다. 이것이 바로 ..

[Java] JVM, JRE, JDK, JIT 차이와 포함 관계

처음 Java를 공부하면서, JVM, JRE, JDK라는 용어를 접했지만,이름이 비슷하고 서로 포함 관계를 가지다 보니 헷갈리기 쉬웠습니다.여기에 JIT라는 개념까지 더해져 구분하기 더 힘들었습니다. 이 글에서는 JVM, JIT, JRE, JDK의 정의와 차이를 중심으로 정리해보고자 합니다.각 요소가 정확히 무엇을 의미하고, 서로 어떤 관계로 얽혀 있는지 이해하는 데 초점을 맞추었습니다. Java의 실행 철학Java의 핵심 목표 중 하나는 아래와 같습니다."한 번 작성하면 어디에서나 실행(Write Once, Run Anywhere)" 이는 운영체제(OS)마다 코드를 따로 작성하거나 수정하는 번거로움 없이,같은 프로그램을 여러 환경에서 동일하게 실행할 수 있도록 하기 위함입니다. 이를 위해 Java는 ..