JVM 3

[컴파일] 인터프리트, 정적, 동적, JIT 컴파일 방식 차이

인터프리트 컴파일 실행 중 프로그래밍 언어를 읽어가면서 해당 기능에 대응하는 기계어 코드를 실행 [런타임 컴파일] 소스 코드를 한 줄씩 읽어들여서 해석하고 실행 빠르게 실행할 수 있지만, 반복적으로 실행되는 코드가 있을 경우 이를 매번 해석하고 실행하여 비효율적 정적 컴파일 실행하기 전에 프로그램 코드를 기계어로 번역 JIT 컴파일(Just in Time compilation) = 동적 컴파일 인터프리트 + 정적 컴파일 방식을 혼합한 방식으로 생각 가능 실행 시점에서 인터프리트 방식으로 기계어 코드를 생성하면서 그 코드를 캐싱하여, 같은 함수가 여러 번 불릴 때 매번 기계어 코드를 생성하는 것을 방지 [런타임 컴파일] 최근의 JVM(자바 가상 머신), .NET, V8(node.js)에서는 JIT 컴파일을..

IT 2024.04.04

[Java] 자바의 특징

자바의 특징 플랫폼 독립성 자바는 H/W, OS 등 플랫폼에 종속되지 않는 독립적인 바이트 코드로 컴파일 됨 JVM만 있으면 하드웨어/운영체제 상관 없이 자바 프로그램 실행 가능 객체 지향 자바는 객체 지향 언어로서 ① 캡슐화 ② 상속 ③ 다형성 지원 객체 간의 상호 관계로 모델링 되어 인간 사고에 가깝게 표현됨 클래스로 캡슐화 자바는 객체 지향 언어의 캡슐화(encapsulation) 원칙을 철저히 지켜, 변수나 메소드는 반드시 클래스 내에 구현하도록 함 클래스에 속하지 않은 변수나 메소드는 있을 수 없음 자바는 클래스 안에 새로운 클래스 = 내부 클래스를 만들 수 있음 소스와 클래스 파일 클래스 파일(.class)에는 반드시 하나의 클래스만 들어 있음 즉, 하나의 자바 소스 파일에 여러 개의 클래스를..

카테고리 없음 2024.04.04

[Java] 자바, JDK, JRE, JVM, 모듈화, 자바 API, IDE

JDK(Java Development Kit) 자바 개발자에게 무료로 배포하는 소프트웨어 JDK = 자바 컴파일러 등의 개발 도구 + JRE 참고 SDK(Software Development Kit) 특정한 소프트웨어 프레임워크, 하드웨어 플랫폼, 컴퓨터 시스템 게임기 등을 위한 응용프로그램 등을 만들 수 있게 해주는 개발 도구의 집합 자바의 SDK 가 JDK JRE(Java Runtime Environment) 자바 응용 프로그램이 실행될 때 필요한 소프트웨어들 JRE = 개발자가 활용할 수 있는 자바 API(이미 컴파일된 다양한 클래스 라이브러리) + 자바 가상 기계(JVM) 가발자가 아닌 일반 사용자의 경우 JRE만 필요하며 JRE만 따로 다운 가능 JDK(Demo와 Samples 포함)나 JRE은..

Java 2024.04.04