[기술면접] 5. JVM, JRE, JDK의 차이점은 무엇인가요? [Difference between JVM, JRE, and JDK]
·
◎ Java/Interview👨🏻‍🏫
1. 자바 언어의 장점은 무엇인가요? 2. JVM(Java Virtual Machine)이 무엇인가요? 3. JIT 컴파일러란 무엇인가요? 4. JVM에서 사용할 수 있는 메모리 저장소는 어떤 게 있나요? 5. JVM, JRE, JDK의 차이점은 무엇인가요? 6. 스트링 풀(String Pool)이란 무엇인가요? 7. 예외 처리란 무엇인가요? 8. 컬렉션 프레임워크(Collection Framework)가 무엇인가요? 5. JVM, JRE, JDK의 차이점은 무엇인가요? JVM : Java Virtual Machine의 약자인 JVM은 JRE의 일부입니다. JVM은 바이트코드를 기계가 읽을 수 있는 코드로 변환하는 역할을 하는 일종의 인터프리터입니다. JVM 자체는 플랫폼에 따라 다르지만 Java가 플랫..
[기술면접] 2. JVM(Java Virtual Machine)이 무엇인가요? [What is JVM?]
·
◎ Java/Interview👨🏻‍🏫
1. 자바 언어의 장점은 무엇인가요? 2. JVM(Java Virtual Machine)이 무엇인가요? 3. JIT 컴파일러란 무엇인가요? 4. JVM에서 사용할 수 있는 메모리 저장소는 어떤 게 있나요? 5. JVM, JRE, JDK의 차이점은 무엇인가요? 6. 스트링 풀(String Pool)이란 무엇인가요? 7. 예외 처리란 무엇인가요? 8. 컬렉션 프레임워크(Collection Framework)가 무엇인가요? 2. JVM(Java Virtual Machine)이 무엇인가요? JVM은 Java Virtual Machine의 약자로 Java 인터프리터입니다. Java로 생성된 바이트코드를 로드, 확인 및 실행하는 역할을 담당합니다. 플랫폼에 따라 다르지만 JVM의 소프트웨어는 운영 체제마다 다릅니다..
[study] CPU 연산의 최소 단위는? [JVM이 32비트 연산을 기본으로 처리하는 이유]
·
◈ Study/기초튼튼 개발지식🥔
- CPU 연산의 최소 단위는? 현재 대부분의 일반적인 컴퓨터 아키텍처에서는 32비트 단위 이하의 연산은 지원하지 않는다. (일부 임베디드 시스템이나 구형 컴퓨터에서는 8비트, 16비트 아키텍처를 사용하는 경우도 있다.) 16비트 아키텍처는 1980년대 중반까지 사용되었으며, 이 시기에는 IBM PC 등의 개인용 컴퓨터에서 인텔의 8086과 80286 프로세서가 널리 사용되었다. 하지만 이러한 아키텍처에서는 32비트 이상의 데이터를 처리하려면 두 개의 16비트 데이터를 조합해야 하는데 이는 처리 속도가 느려지는 문제가 있었다. 현재에 이르러서는 대부분의 컴퓨터가 32비트를 넘어 64비트 아키텍처를 사용하고 있다. 64비트 아키텍처에서는 32비트 데이터 처리도 가능하다. 64비트 아키텍처에서는 64비트와 ..
[study] Java 메모리 영역 구조 [메서드 영역(Method Area), 힙 영역(Heap), 호출 스택 영역(Call Stack)]
·
◈ Study/기초튼튼 개발지식🥔
- Java 메모리 영역 구조 자바 가상 머신(JVM)은 자바 프로그램이 실행되는 동안 메모리 관리를 담당한다. JVM 메모리 관리 영역은 자바 프로그램 실행 시 필요한 메모리를 효율적으로 할당하고 관리하기 위한 구조로, 프로그램의 성능과 안정성에 큰 영향을 미친다. 개발자는 이를 잘 이해하고 JVM의 옵션을 적절히 설정하여 최적의 성능을 추구해야 한다. 1. 메서드 영역(Method Area 또는 Permanent Generation) 메서드 영역은 클래스에 대한 정보(클래스 이름, 메소드, 변수, 상수)를 저장하는 영역이다. 클래스가 처음 사용될 때 해당 클래스의 정보가 이곳에 로드된다. 메서드 영역은 JVM 시작 시에 할당되며, 모든 스레드가 공유한다. 메서드 영역은 Java 7 이전 버전에서는 P..
[study] 바이트 코드(Bytecode)란? [JVM에서 실행될 수 있는 실행 가능한 기계어 코드]
·
◈ Study/기초튼튼 개발지식🥔
- 바이트 코드(Bytecode)란? 자바 가상 머신(JVM)에서 실행될 수 있는 실행 가능한 기계어 코드 자바 소스 코드(.java)가 javac를 사용하여 컴파일되면, 컴파일된 바이트 코드 파일(.class)은 JVM에서 실행된다. 바이트 코드는 기계어 코드보다는 덜 추상화된 코드이며, 바이너리 코드보다는 더 추상화된 코드이다. 바이트 코드는 JVM이 이해할 수 있는 언어이며, 특정 플랫폼에 종속되지 않는다. 즉, 한 번 작성한 바이트 코드 파일은 다양한 플랫폼에서 실행될 수 있다. 자바 컴파일러는 소스 코드 파일을 컴파일하여 바이트 코드 파일을 생성하며, 이 바이트 코드 파일은 JVM이 이해할 수 있는 형태로 구성된다. JVM은 이 바이트 코드를 읽어서 실행 가능한 기계어 코드로 변환하고 실행한다...