Programming/Java
자바 프로그래밍 시작하기
helloworld:
2021. 5. 25. 19:15
자바의 특징
- 플랫폼 독립적이다 : 운영체제에 상관 없이 실행 가능하다.
- 객체지향 프로그래밍 언어이다.
- JDK 1.8부터 함수형 언어를 지원한다.
- 메모리 관리를 자동으로 해준다.
소스파일
- 프로그래밍 언어로 명령을 구현한 파일
- 확장자가 java이다.

컴파일
자바처럼 고급 언어로 작성된 소스 파일은 컴퓨터가 인식할 수 없으므로, 컴퓨터가 이해할 수 있도록 기계어로 변환하는 작업
실행파일
- 소스파일을 컴파일해서 1과 0으로 변환된 파일
- 확장자가 class이다.
- 자바 언어는 다른 언어와 달리 컴파일 작업을 거쳐 생성된 파일이 기계어 코드가 아니라 바이트코드이다.(기계어 변환 전 중간단계 코드)
- 바이트 코드를 기계어로 변환하는 작업을 JVM이 담당한다.

JRE와 JDK, JVM
- JRE (Java Runtime Environment) : Java로 개발된 class를 실행, 운영할 수 있는 환경
- JDK (Java Development Kit) : 개발에 필요한 환경 제공 ※ Java11 버전부터 JDK에 JRE를 포함하기 때문에 별도로 다운받지 않아도 된다.
- JVM (Java Virtual Machine) : 자바 실행 파일이 각 컴퓨터의 운영체제에 맞게 실행될 수 있도록 기계어 코드로 변환 작업 후 자바 실행 파일 구동

클래스 로더
- 자바 프로그램 실행 시 가장 먼저 동작한다.
- 모든 실행파일(*.class)를 찾아서 준비해준다.
바이트코드 검증
- 실행 시점에 코드의 유효성 검증
- 코드가 정해진 규칙에 따라 올바르게 작성되었는지 검증
JIT 컴파일러
- 기계어 코드로 변환
- 소스파일을 실행 파일로 변환
※ 인터프리터와 JIT 방식
인터프리터 | JIT |
명령문 단위로 기계어로 변환 | 전체를 한 번에 기계어로 변환 |
처리속도가 느리다 | 미리 컴파일해놓고 실행하므로 처리속도가 좀더 빠르다 |
Maven
- 프로젝트 관리, 빌드 기능
- 라이브러리를 일일이 찾아서 다운받고 관리하는 불편함 해소
- 메이븐을 이용함으로써 라이브러리를 받는 것과 버전 관리하는 것이 수월해진다.
※ 빌드도구 : 컴파일, 테스트, 정적 분석 등을 통해 동작이 가능한 소프트웨어를 생성 (Ant, Maven 등)