-
'쉽게 배우는 자바 프로그래밍' Ch1 핵심 정리(JAVA 특징, JVM 이란?)프로그래밍 언어/JAVA 2023. 5. 27. 23:13
Chapter 1에서는 JAVA언어의 특징, JVM 에 대해서 주로 다뤘다.
JAVA의 특징
- 객체 지향 언어
- 함수형 코딩 지원
- 플랫폼 독립적 (JVM 덕분에 가능!!)
- 분산 처리 지원
- 멀티스레딩 지원
- 동적이다
JAVA 프로그램 종류
- JAVA 애플리케이션 : 독립적으로 실행할 수 있는 일반적인 애플리케이션 ex) 이클립스도!!
- JAVA 애플릿 : 웹 브라우저에서 구동하는 프로그램
- JAVA 서블릿 : 웹 서버에서 동작하는 프로그램
JVM
원래 소프트웨어 마다 운영체제가 다르면, 서로 호환되지 않는다.
그렇지만 자바 프로그램은 JVM(Java Virtual Machine) 덕분에 플랫폼에 관계없이 실행될 수 있고 플랫폼 독립적이다.
실행 과정
[일반 프로그램] : 하드웨어와 운영체제에 종속적
컴파일러 : 일반 프로그램 소스 코드 -> 이진 코드
[자바 프로그램] : 하드웨어와 운영체제에 독립적
https://velog.io/@pearl0725/JVM%EC%9D%80-%EC%96%B4%EB%96%A4-%EC%97%AD%ED%95%A0%EC%9D%84-%ED%95%A0%EA%B9%8C 컴파일러 : 자바 프로그램 소스 코드(ex. Hello.java) -> 바이트 코드(ex. Hello.class)
자바 플랫폼(자바 API + JVM) : 바이트코드(ex.Hello class) -> OS와 하드웨어 에게 전달
(자바 컴파일러 파일은 javac.exe이고, JVM을 구동하는 파일은 java.exe이다. )
위 그림에서 보면 알 수 있듯이, JVM도 플랫폼에 따라 바이트코드를 다른 실행 코드로 해석한다.
다시 말해, 윈도우 컴퓨터와 리눅스 컴퓨터의 JVM은 서로 다르다.
C/C++ 프로그램을 컴파일한 기계어를 실행하려면 운영체제가 메모리를 직접 할당한다.
그러나 자바 프로그램의 경우 운영체제가 메모리를 직접 제어하지 않고 JVM에게 위임한다.
JVM은 운영체제에서 할당받은 메모리를 프로그램에 할당하고 회수하는 역할을 한다.
그래서 일반 프로그램은 하드웨어와 운영체제에 종속적이지만, 자바 프로그램은 '독립적' 이라고 할 수 있다.
JRE와 JDK
모든 자바 에디션은 JRE(Java Runtime Environment. 자바 실행 환경)과 JDK(Java Development Kit. 자바 개발 환경)을 포함한다.
https://o7planning.org/11911/configuring-eclipse-to-use-the-jdk-instead-of-jre 해당 그림에서 보면 알 수 있듯이 JDK, JRE, JVM 순으로 포함관계가 성립된다.
JVM : JIT 컴파일러, 자바 인터프리터 등을 포함한다.
JRE : JVM, 클래스 로더, 자바 API, 실행 시간 라이브러리 등을 포함한다.
JDK : JRE, 개발에 필요한 컴파일러, 디버거, 애플릿뷰어 등을 포함한다.
JAVA IDE
JAVA는 메모장 대신에 통합 개발 환경(IDE. Integrated Development Environment) 로
이클립스, 인텔리J 아이디어, 넷빈즈 등을 사용한다.
* 패키지(package)는 자바 프로그램을 포장하는 단위이다.
패키지를 생성하지 않고 클래스를 생성하면 default package에 클래스가 저장되지만 권장하지는 않는다.
Further Topics
- Java 멀티스레딩 방식
Reference
- "쉽게 배우는 자바 프로그래밍 2판" 책
도움이 되셨다면 좋아요와 댓글 부탁드립니다:)
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
'쉽게 배우는 자바 프로그래밍' Ch1 연습문제 답안 (0) 2023.05.28 '쉽게 배우는 자바 프로그래밍' Ch2 핵심 정리(JAVA 데이터 타입, var) (0) 2023.05.28