JVM은 Java Virtual Machine의 준말로 자바 가상 머신을 줄여부르는 용어이다.
우리가 작성하는 자바 소스코드(.java)는 CPU가 인식하지 못하므로 기계어로 컴파일을 해주어야 한다.
자바에서는 자바 컴파일러가 소스코드를 자바 바이트 코드(.class)로 변환하면 JVM이라는 가상 머신에서는 이 바이트코드를 알맞는 기계어로 해석하여
자바를 OS에 종속받지 않고 독립적으로 CPU에서 인식,실행 할 수 있도록 해준다.
즉 JVM은 실행환경에 영향받지 않고 JVM만 있으면 어디서든지 Java를 실행할 수 있다.
즉, JVM은 JAVA와 OS사이의 중개인과 같은 역할을 하는 셈이다.
기본 타입
- 실제 값을 저장하는 공간으로 Stack영역에 저장된다.
- 기본값이 있기 때문에 null이 없다.
- 메소드 매개변수로 값을 넘겨줘도 원본값은 바뀌지 않는다.
참조형 타입
- 객체의 주소값을 참조하는 타입으로 배열,열거,클래스,인터페이스 등을 말한다.
- 기본형 타입을 제외한 모든 자료형은 참조형 타입임
- 빈 객체를 의미하는 null이 있을 수 있다.
- 기본자료형은 Stack에 실제 데이터값이 저장되지만
참조자료형은 Heap에 실제 데이터값이 저장되고 Stack에는 힙 메모리의 위치값이
저장된다.