-
1. 자바 시작Summary/[JAVA] Summary 2024. 2. 6. 17:08
* 프로그램 컴파일과 실행
자바의 소스 프로그램의 확장자 : .java이고 자바 전용 컴파일러에 의해 컴파일 되면 .class 파일이 생성되고 .class 파일은 자바 가상 기계(JVM)에 의해서 실행된다.
* WORA(Write Once Run Anywhere)
C/C++과 같은 자바의 이전 언어들은 운영체제가 다른 장치에서 다시 컴파일해서 실행해야하는 플랫폼 종속적인 단점을 갖고 있었는데, JAVA는 자바 가상 기계와 바이트 코드를 통해 이를 극복하여 JVM이 있으면 어디서나 동일한 실행 환경을 제공한다.
* JVM
자바 가상 기계는 소프트웨어로서, 서로 다른플랫폼에서 자바 프로그램이 실행되는 동일한 환경을 제공한다.
자바 가상 기계는 플랫폼의 종속적이며, JVM이 플랫폼에 맞게 작성되어 있어 java로 작성한 프로그램들은 독립적으로 실행될 수 있는 것이다.
* 자바의 실행 환경
C/C++은 소스파일을 컴파일 한 후, 목적코드를 만들고 링커를 통해 목적코드와 라이브러리리들을 연결해 하나의 .exe 실행 파일을 만든다. 이 exe파일에는 실행에 필요한 모든 코드가 포함되어 있어 실행에 문제는 없지만 메모리 사용량이 크다는 단점이 있다. 이를 극복한 JAVA는 소스파일을 컴파일하여 .class파일을 만든 후 이들을 뭉치는 링크 과정이 없다.
자바 가상 기계는 클래스 파일을 메모리에 로딩하고 실행 중 필요한 API나 라이브러리들은 그때그때 적재하여 최소한의 메모리를 사용한다. 이것이 플랫폼에 독립적이면서 적은 메모리 사용량을 목적으로하는 자바의 본질이다.
* 개발 도구와 플랫폼
JDK : Java Development Kit - 자바 컴파일러 등의 개발 도구
JDE : Java Runtime Evnironment 자바 API 자바 실행 환경
* 자바 모듈화의 목적 : 세밀한 모듈화를 통해 자바 응용프로그램이 실행되는 데 필요없는 모듈을 배제하여 작은 크기로 배포할 수 있도록 하기 위함.
* 자바 API : Application Programming Interface : 개발자들이 사용하도록 미리 만들어놓은 유용한 자바 클래스들의 집합.
* 자바 IDE : Intergrated Development Environment : 통합 개발 환경(소스 편집, 컴파일, 디버깅)
* 자바에선 클래스 이름과 소스 파일의 이름이 일치하여야 한다.
ex) Class 이름 : Hello2030 , 파일 이름 -> Hello2030.java
* 자바 응용프로그램은 실행 도중 예측할 수 없는 시점에 가비지 컬렉션이 실행되므로, 일정 시간 내에 결과를 도출해야 하는 실시간 응용 시스템에 사용하기엔 적합하지않다
<자바 특징 총정리>
- 플랫폼 독립성
- 객체 지향
- 클래스로 캡슐화
- 소스와 클래스 파일
- 실행 코드 배포
- 패키지
- 멀티스레드
- 가비지 컬렉션
- 실시간 응용 시스템에 부적합
- 실행 안전
- 작성 용이
- 속도 개선을 위한 JIT 컴파일러