자바(Java): 객체 지향 프로그래밍(OOP)을 기반으로 한 범용 프로그래밍 언어.
자바는 자바 가상 머신(JVM)을 통해 어떤 소프트웨어나 시스템이 특정 운영체제(OS)나 하드웨어 환경에 의존하지 않고 다양한 환경에서 동일하게 동작할 수 있다.
자바 공식 홈페이지 JDK 다운로드
JDK 17 (LTS) 버전 Windows x64 Installer (.exe) 파일을 다운로드.
다운로드한 설치 파일을 실행하고, Next → Next → Install로 설치한다.

여기서 x64 Installer를 설치했던 듯.

JDK를 설치한 후, 명령 프롬프트(cmd)에서 자바 명령어를 사용할 수 있도록 환경 변수 설정을 해야 한다.
📌 JAVA_HOME 설정
윈도우 검색창에 “환경 변수” 입력 → 시스템 환경 변수 편집 클릭
아래쪽 환경 변수(N)... 클릭

시스템 변수 영역에서 새로 만들기 클릭:

변수 이름: JAVA_HOME
변수 값: C:\Program Files\Java\jdk-xx (자바 JDK가 설치된 경로 입력)

📌 Path에 추가
시스템 변수에서 Path를 찾아 선택 → 편집 클릭
새로 만들기 클릭 → 아래 경로 추가

%JAVA_HOME%\bin
명령 프롬프트(cmd) 실행
java -version
javac -version
개발자가 .java 확장자를 가진 자바 코드를 작성한다.
public class Hello {
public static void main(String[] args) {
System.out.println("안녕하세요!");
}
}
작성한 .java 파일을 자바 컴파일러(javac)로 변환하면 .class라는 파일이 만들어진다.
javac Hello.java
→ 결과: Hello.class
.class 파일은 사람이 읽기 어려운 바이트코드(Bytecode)로 되어 있다.
바이트코드는 자바 전용 중간 언어로, 특정 운영체제에 종속되지 않는다. (플랫폼 독립적)
자바 가상 머신(JVM, Java Virtual Machine)이 Hello.class를 읽고 실행한다.
java Hello
JVM은 운영체제마다 따로 존재하지만, 바이트코드는 동일하다.
JVM이 바이트코드를 한 줄씩 해석(인터프리팅) 하거나, 필요한 부분을 미리 기계어로 바꾸어 실행(JIT 컴파일) 한다.
public class Person {
String name;
public static void main(String[] args) {
int age = 20; // 스택 영역
Person p = new Person(); // p는 스택, 객체는 힙
p.name = "김사과"; // 힙에 저장된 객체의 필드
}
}
int age = 20; → age는 스택에 저장.
Person p = new Person(); → p는 스택에 있지만, 실제 Person 객체는 힙에 생성
"김사과"는 힙에 저장되고, p.name도 힙에 있는 객체의 필드를 가리킴.