JAVA란? 자바는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 연구원들이 개발한 객체 지향 프로그래밍 언어로 1995년에 발표되었다. 처음에는 가전제품에 탑재해 동작하는 프로그램을 만들기 위해 탄생했으나 지금은 웹과 모바일 앱 개발에서 가장 많이 사용하는 언어로 성장했다. JAVA 특징 운영체제에 독립적 자바 가상 머신(JVM)하고만...
JVM이란? Java Virtual Machine의 약자로, 자바 가상머신 운영체제에 독립적인 환경에서 바이트코드를 실행 즉, JVM은 자바 애플리케이션을 실행하는 역할을 담당하며, 바이트코드를 OS가 이해할 수 있는 기계어로 변환하는 인터프리터 및 실행 엔진을 포함 JVM의 특징 바이트코드 실행 자바 컴파일러(javac)가 변환한 바이트코드를 해석하고...
Runtime Data Area(메모리) JVM이 사용하는 메모리 영역은 Heap Area, Stack Area, Method Area, PC Register, Native Method Stack로 5가지가 있다 Heap Area 객체가 저장되는 공간 특징 모든 객체(instance)와 배열이 저장됨 GC가 관리하며, 더 이상 참...
Execution Engine JVM이 .class 파일(바이트코드)을 직접 실행할 수 없으므로, Execution Engine이 바이트코드를 기계어로 변환하여 실행하고 Interpreter, JIT Compiler, Garbage Collector로 구성 동작 과정 클래스 로딩 (Class Loader) .class 파일(바이트코드)을 JVM으로 로드 ...
JNI(JVM Native Interface) 정의 Java 코드에서 네이티브 코드(C, C++, 어셈블리 등) 호출을 가능하게 하는 인터페이스 네이티브 코드에서 Java의 클래스, 메서드, 필드를 접근 가능하게 함 플랫폼 종속적 → 운영체제(OS)별로 다르게 구현될 수 있음 JVM과 네이티브 코드 간의 데이터 변환 및 메모리 관리 필요 사용 목적 기...