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) : 자바 실행 파일이 각 컴퓨터의 운영체제에 맞게 실행될 수 있도록 기계어 코드로 변환 작업 후 자바 실행 파일 구동

JVM 실행환경

클래스 로더

  • 자바 프로그램 실행 시 가장 먼저 동작한다.
  • 모든 실행파일(*.class)를 찾아서 준비해준다.

 

바이트코드 검증

  • 실행 시점에 코드의 유효성 검증
  • 코드가 정해진 규칙에 따라 올바르게 작성되었는지 검증

 

JIT 컴파일러

  • 기계어 코드로 변환
  • 소스파일을 실행 파일로 변환

※ 인터프리터와 JIT 방식

인터프리터 JIT
명령문 단위로 기계어로 변환 전체를 한 번에 기계어로 변환
처리속도가 느리다 미리 컴파일해놓고 실행하므로 처리속도가 좀더 빠르다

 

Maven

  • 프로젝트 관리, 빌드 기능
  • 라이브러리를 일일이 찾아서 다운받고 관리하는 불편함 해소
  • 메이븐을 이용함으로써 라이브러리를 받는 것과 버전 관리하는 것이 수월해진다.

※ 빌드도구 : 컴파일, 테스트, 정적 분석 등을 통해 동작이 가능한 소프트웨어를 생성 (Ant, Maven 등)