본문 바로가기

카테고리 없음

#1 <1주차> JVM과 Wrapper 클래스

Java Virtual Machine(자바 가상 머신)

자바를 실행하기 위한 가상 기계(컴퓨터)라고 함

Os에 종속 받지 않고 CPU가 Java를 인식하고 실행할 수 있게 하는 가상 컴퓨터

즉 가상의 기기를 만들어주는 것을 의미한다

다시 말해, 여러 가지의 기기 위에 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어주는 것을 의미

 

JRE(Java Runtime Environment)

자바 실행 환경이라는 뜻을 가진다

JVM을 설치하는 방법은 JRE를 설치하는 것이다

JRE(JVM)만 있다면 Java 프로그램을 실행만 시킬 수 있다

JRE는 .class 파일만 실행 가능

 - JDK가 javac 명령어를 통해 .java 파일을 실행 가능한 .class 파일로 변환해 준다

즉 자바 프로그램을 실행시키는데 문제가 없지만 자바 프로그램을 코딩할 때 JDK가 아니라 JRE를 사용하면 컴파일이 정상적으로 되지 않는 문제가 생길 수 있다

 

JDK(Java Development Kit)

자바 개발 키트, 자바를 개발하는데 필요한 기능들이 들어간 것이다

자바를 실행하는데 필요한 JRE도 포함되어 있어서 JDK를 다운 받으면 JRE 또한 포함되어 있다

JDK는 JRE 기능인 .java 파일들을 .class 파일들로 변환해주는 Java Compiler(javac)기능과 코드를 디버깅하는 jdb등이 있다

 

 

Wrapper Class

기본형 변수를 클래스로 한번 랩핑(감싸는) 변수라고 생각하면 된다

 

박싱, 언박싱

기본 타입에서 래퍼 클래스 변수로 변수를 감싸는 것을 '박싱' 이라고 부르며

래퍼 클래스 변수를 기본 타입 변수로 가져오는 것을 '언박싱'이라고 부른다

ex)

//박싱

int number =21;

Integer num = new Integer(number);



//언박싱

int n = num.intValue(); // 래퍼 클래스들은 intValue() 같은 언박싱 메서드들을 제공한다

 

 

Stack 영역, Heap 영역

Stack 의 경우 정적으로 할당된 메모리 영역

 - 그래서 크키가 몇 byte인지 정해져 있는 기본형 변수를 저장

 - 추가로 크기가 정해져 있는 참조형 변수의 주소값도 저장한다

Heap 의 경우 동적으로 할당된 메모리 영역

 - 그래서 크기가 계속 늘어날 수 있는 참조형 변수의 원본을 저장한다

 

 

 

ps.

String 같은 참조형은 끝에 null 문자가 들어감

문자형(char) : 기본형

문자열(String) :  참조형