Java/Java 원리(6)
-
자바 변수가 메모리에 저장되는 방식
자바에서 변수를 선언하고 초기화할 때, 기본 자료형과 참조 자료형이 메모리에 저장되는 방식은 다르다. 이번 포스팅에서는 변수 선언과 할당이 이루어지는 과정을 메모리 관점에서 정리해본다. 1. 기본 자료형 (Primitive Type)기본 자료형기본 자료형: int, double, char, boolean 등값 자체가 메모리의 스택(Stack) 영역에 저장된다.메모리 할당 과정int a; // 변수 선언a = 10; // 값 할당int a; → 스택(Stack) 영역에 a라는 변수 공간이 생성되지만 아직 값이 없음. a = 10; → a의 메모리 공간에 10이 2진수로 저장됨. (00000000 00000000 00000000 00001010) 기본 자료형의 특징값 자체를 스택에 저장하며, 블록({})이..
2025.02.19 -
자바의 메모리 구조
자바의 메모리 구조 자바는 다양한 메모리 영역을 활용해 데이터를 관리하고,각 영역은 서로 다른 역할을 하면서 JVM의 효율적인 실행을 돕는다. 스택: 메서드 호출과 관련된 지역 변수와 메서드 정보.힙: 동적으로 생성된 객체들.메소드 영역: 클래스, 메서드, 정적 변수 등 클래스 관련 정보.PC 레지스터: 현재 스레드가 실행 중인 명령어 주소.네이티브 메모리: 네이티브 코드가 사용하는 메모리. 1. 스택 (Stack)역할: 메서드 호출 시 필요한 데이터(지역 변수, 메서드 인자 등)를 저장하는 메모리 영역.구성: 각 스레드마다 스택이 하나씩 생성되고, 각 스레드에서 실행되는 메서드의 지역 변수와 메서드 호출 정보가 저장된다. 특징지역 변수, 매개변수, 메서드 호출 정보 등은 스택 메모리에 저장되고, 메서드..
2025.02.19 -
자바 프로그램 실행 과정, JVM 동작 방식과 구조
자바 프로그램 실행 과정자바 소스 파일 (.java)사람이 이해할 수 있는 형태의 코드자바로 작성된 원시 코드자바 컴파일러 (javac.exe)자바 컴파일러는 .java 파일을 받아들여 바이트 코드인 .class 파일로 변환합니다.이때, 자바는 소스 코드를 바이트 코드로 변환하여 플랫폼에 독립적인 형태로 만듭니다.컴파일 단계에서는 소스 코드를 바이트 코드로 변환하는 작업만 이루어집니다.이때, 에러가 있으면 컴파일러가 오류 메시지를 출력합니다. (컴파일 오류)자바 바이트 코드 (.class).class 파일은 자바 바이트 코드가 저장된 파일입니다.자바 바이트 코드는 JVM(Java Virtual Machine)에서 실행될 수 있도록 변환된 코드입니다.이 바이트 코드는 운영 체제나 하드웨어에 의존하지 않기 ..
2025.02.19 -
자바 플랫폼
자바 플랫폼 (Java Platform)자바 플랫폼이란 Java 애플리케이션을 실행하고 개발할 수 있는 환경 전체를 의미.JVM(Java Virtual Machine), 자바 실행 환경(JRE), JDK, 자바 API 등으로 구성된다. 단순히 JDK만을 의미하는 게 아니라, Java 프로그램이 동작하는 데 필요한 구성 요소들이 포함된다. 자바 플랫폼의 구성1.JVM (Java Virtual Machine)자바 플랫폼에서 핵심적인 역할을 하는 것이 바로 JVM이다. JVM은 자바 바이트 코드를 실행할 수 있는 가상 머신으로, 다양한 운영 체제에서 자바 프로그램이 동일하게 실행되도록 도와준다. 자바 프로그램은 운영 체제에 종속되지 않고 JVM에서 실행되기 때문에 플랫폼 독립성을 제공한다. 2. JRE (J..
2024.11.27 -
JVM, JRE, JDK의 차이 + JDK의 종류
1. JVM (Java Virtual Machine)역할: 자바 애플리케이션을 실행하는 가상 머신. 자바 프로그램이 운영 체제에 독립적으로 실행될 수 있도록 하는 가상 환경을 제공한다. 플랫폼 독립성: 자바 애플리케이션이 어떤 운영 체제에서 실행되든 동일한 바이트 코드가 JVM을 통해 실행되기 때에, 자바는 플랫폼 독립적이다.주요 기능바이트 코드 실행: 자바 소스 코드가 컴파일되어 생성된 바이트 코드를 실행메모리 관리: JVM은 힙(heap)과 스택(stack) 영역을 관리하고, 가비지 컬렉션(Garbage Collection)을 통해 메모리 관리를 자동으로 수행호환성 유지: 자바는 "Write Once, Run Anywhere"라는 슬로건을 가지고 있으며, JVM은 이를 가능하게 해준다. JVM이 모든..
2024.11.27 -
자바의 특징
1. 자바란? 썬에서 개발하여 발표한 객체지향 프로그래밍 언어 (현재 운영 회사 오라클)다양한 기종의 컴퓨터와 운영체제가 공존하는 인터넷 환경에 적합한 언어로 인터넷 발전과 함께 많은 사용자층 확보풍부한 클래스 라이브러리를 제공한다 2. 자바 언어의 특징2-1. 장점 플랫폼 독립성: java는 JVM 덕분에 다양한 운영체제에서 동일한 코드를 실행할 수 있다.객체지향 프로그래밍(OOP) 지원: Java는 철저한 객체지향 언어로, 캡슐화, 상속, 다형성과 같은 OOP의 원칙을 체계적으로 구현할 수 있다.풍부한 라이브러리와 프레임워크: Spring, Hibernate, Maven 등과 같은 생태계를 통해 백엔드와 클라우드 기반 애플리케이션 개발에서 강점을 발휘한다.안정성과 강력한 커뮤니티 지원: Java는 다..
2023.03.13