본문 바로가기

Java11

[Java] Java의 실행 과정 개발자는 자바 소스 파일(.java)를 작성한다. JDK가 제공하는 자바 컴파일러(javac)를 사용해 소스 파일을 컴파일하여 바이트 코드(.class)를 생성한다. JVM의 Class Loader가 바이트 코드(.class)를 전달 받아 동적 로딩을 통해 실행에 필요한 클래스들을 로딩하여 JVM 내부의 Runtime Data Area에 로드한다. JVM의 Execution에 의해 기계에로 해석되어 실행된다. 1. Class Loader 프로그램 상에서 작성한 모든 클래스, 변수 및 메서드의 정보를 Runtime Data Areas의 Method Area에 배치한다. JVM 내부에 바이트 코드(.class)를 로드하고 링크를 통해 배치하는 작업을 수행한다. 실행될 때 동적으로 클래스를 로드하고 리소스 파.. 2023. 4. 13.
[JAVA] JDK, JRE, JVM 총정리 - JDK (Java Development Kit) 자바 개발 키드(JDK)는 말 그대로 자바로 개발을 하는데 사용되는 키트다. 따라서 JDK에는 자바를 사용해 개발을 하는데 필요한 라이브러리들과 컴파일러(javac), 자바 프로그램 실행 환경(JRE)도 포함되어 있다. 일반적으로 JDK는 OpenJDK + 제조사의 부가 기능으로 구성되며, 대표적으로 Oracle JDK가 있다. 그러나 Oracle JDK 라이센스 상용화 이슈로 인해 무료 라이센스를 제공하는 또 다른 JDK 버전을 사용하기도 한다. Java 버전별 차이 Java는 크게 LTS(Long-term Support) 버전과 non-LTS 버전으로 나뉜다. 장기 지원 버전(LTS)는 후속 버전이 출시되어도 일정 기간 동안 지원을 지속하지만, no.. 2023. 4. 10.
[JAVA] 문자와 문자열 기본형 변수 중 문자와 문자열의 차이점에 대해 알아본다. 선언 관점에서 차이점 - 문자 (char) 문자 한개만 저장하며 홑따옴표를 사용하여 값을 지정한다. char alphabet = 'A'; // 문자 하나를 저장한다. - 문자열 (String) 문자 여러개를 문장 형태로 저장하며 쌍따옴표를 사용하여 범위를 지정한다. String message = "Hello World": // 문자열을 저장한다. 저장 관점에서 차이점 - 문자 (Char) 문자 뒤에 \0 (널문자)가 없다. 1byte만 사용하기 때문에 끝을 알고 있으므로, 데이터만 저장한다. 기본형 변수로, 원본값이 JVM 메모리 영역 중 Stack 영역에 있다. - 문자열 (String) 문장의 끝에 \0 (널문자)가 함께 저장된다. 몇 개의 b.. 2023. 4. 3.
[JAVA] 자바 가상머신 JVM(Java Virtual Machine) 이란? JVM(Java Virtual Machine) 이란? JVM은 자바 프로그램 실행환경을 만들어 주는 소프트웨어다. 자바 코드(.java)를 컴파일하여 바이트 코드(.class)로 만 변환하면 이 코드는 JVM에서 실행된다. JVM은 자바 실행 환경(JRE; Java Runtime Environment)에 포함되어 있다. 바로 실행 파일(.exe)를 만들지 않고 위와 같은 방식으로 처리할 때 얻을 수 있는 가장 큰 이점은 하나의 바이트 코드(.class)로 모든 플랫폼(윈도우, 리눅스 등)에서 실행할 수 있다는 것이다. 이렇게 동작할 수 있는 이유는 JVM이 생성된 바이트 코드를 실행하는 컴퓨터의 운영체제에 맞는 실행 파일로 변경해주기 때문이다. Java는 플랫폼에 종속적이지 않지만 JVM은 플랫폼에 종속.. 2023. 3. 25.