본문 바로가기
java

001 - java

by sozr 2023. 5. 14.

핵심 키워드

  • 개발 순서: 소스파일 > 컴파일 > 실행파일 > 실행
  • 자바 가상 머신 (JVM)

 

프로그램

  • 컴퓨터 장치를 조작하여 원하는 결과물을 얻기 위해 작업 순서를 나열한 명령어들의 집합이다.

 

프로그래밍 언어

  • 사람과 기계 사이의 대화를 가능하게 해주는 것이다.
  • 알고리즘이나 자료 서술을 위한 임의의 기호 약속을 의미한다.
  • 컴퓨터를 이용하여 수행하고자 하는 일을 컴퓨터에게 전달하기 위한 표기법이다.
  1. 기계어: 기계 중심적 언어, 컴퓨터가 이해하는 언어, 0과 1의 숫자로 구성된다. 
  2. 어셈블리어: 기계 중심적 언어, 기계어에 해당되는 명령을 기호를 이용해 나타낸 기호 언어, 기계어와 일대일 대응한다.
  3. 고급언어: 문제 중심적 언어, 인간의 기준에서 이해하기 용이하도록 명령문이나 기호를 사용한 언어,이다.

 

컴파일

  • 사람이 고급언어로 명령어를 작성하면 컴퓨터는 이해할 수 없으므로 기계어로 변환하는 과정이다.
  • 개발자 --> 고급언어 --(컴파일)--> 기계어 --> H/W

 

프로그램 개발 순서

  • 소스파일 --(컴파일)--> 실행파일 --(실행)--> 컴퓨터
  • 소스파일: 프로그램 개발 시 프로그래밍 언어로 구현한 명령들을 저장한 파일 (.java)
  • 실행파일: 소스파일을 컴파일을 거쳐 바이트 코드로 변환된 파일 (.class)

 

JVM (Java Virtual Machine)

  •  .class 파일은 기계어가 아닌 바이트 코드이므로 실행 불가능하다.
  • 바이트 코드를 기계어 코드로 변환한 후 실행 작업을 담당한다.
  • 각 운영체제에 맞는 기계어 코드로 변환 하여 실행 가능하게 작업한다. (플랫폼에 독립적)

 

JVM 실행 환경

 1) 클래스 로더: 자바 프로그램 실행 시 가장 처음 동작, 실행 시 필요한 실행 파일을 찾는다.

 2) 바이트 코드 검증

 3) JIT 컴파일러: 인터프리터 방식과 달리 파일 전체를 한번에 기계어로 변환한다.

 

자바 플랫폼

  • JAVA API + JVM
  • JAVA API: 프로그램 쉽게 구현하도록 해주는 클래스 라이브러리의 집합이다.
  • JVM: 자바 컴파일러가 자바 프로그램을 바이트 코드로 변환하면 JVM에 의해 바이트 코드를 실행한다.

 

자바 특징

  • 플랫폼에 독립적이다. - JVM에 의해 각 OS에 맞춰 기계어로 변환 후 실행된다.
  • 객체 지향 언어이다.
  • 유지보수 및 확장성 용이하다.
  • 분산 환경 지원한다.
  • 메모리 관리에 용이하다. - 메모리를 자동으로 정리한다.
  • 멀티스레딩 지원한다. - CPU를 효율적으로 사용 가능하게 한다.
  • 동적이다. - 라이브러리 자동적으로 참조되고 자유롭게 새로운 기능 추가 가능하다.