핵심 키워드
- 개발 순서: 소스파일 > 컴파일 > 실행파일 > 실행
- 자바 가상 머신 (JVM)
프로그램
- 컴퓨터 장치를 조작하여 원하는 결과물을 얻기 위해 작업 순서를 나열한 명령어들의 집합이다.
프로그래밍 언어
- 사람과 기계 사이의 대화를 가능하게 해주는 것이다.
- 알고리즘이나 자료 서술을 위한 임의의 기호 약속을 의미한다.
- 컴퓨터를 이용하여 수행하고자 하는 일을 컴퓨터에게 전달하기 위한 표기법이다.
- 기계어: 기계 중심적 언어, 컴퓨터가 이해하는 언어, 0과 1의 숫자로 구성된다.
- 어셈블리어: 기계 중심적 언어, 기계어에 해당되는 명령을 기호를 이용해 나타낸 기호 언어, 기계어와 일대일 대응한다.
- 고급언어: 문제 중심적 언어, 인간의 기준에서 이해하기 용이하도록 명령문이나 기호를 사용한 언어,이다.
컴파일
- 사람이 고급언어로 명령어를 작성하면 컴퓨터는 이해할 수 없으므로 기계어로 변환하는 과정이다.
- 개발자 --> 고급언어 --(컴파일)--> 기계어 --> H/W
프로그램 개발 순서
- 소스파일 --(컴파일)--> 실행파일 --(실행)--> 컴퓨터
- 소스파일: 프로그램 개발 시 프로그래밍 언어로 구현한 명령들을 저장한 파일 (.java)
- 실행파일: 소스파일을 컴파일을 거쳐 바이트 코드로 변환된 파일 (.class)
JVM (Java Virtual Machine)
- .class 파일은 기계어가 아닌 바이트 코드이므로 실행 불가능하다.
- 바이트 코드를 기계어 코드로 변환한 후 실행 작업을 담당한다.
- 각 운영체제에 맞는 기계어 코드로 변환 하여 실행 가능하게 작업한다. (플랫폼에 독립적)
JVM 실행 환경
1) 클래스 로더: 자바 프로그램 실행 시 가장 처음 동작, 실행 시 필요한 실행 파일을 찾는다.
2) 바이트 코드 검증
3) JIT 컴파일러: 인터프리터 방식과 달리 파일 전체를 한번에 기계어로 변환한다.
자바 플랫폼
- JAVA API + JVM
- JAVA API: 프로그램 쉽게 구현하도록 해주는 클래스 라이브러리의 집합이다.
- JVM: 자바 컴파일러가 자바 프로그램을 바이트 코드로 변환하면 JVM에 의해 바이트 코드를 실행한다.
자바 특징
- 플랫폼에 독립적이다. - JVM에 의해 각 OS에 맞춰 기계어로 변환 후 실행된다.
- 객체 지향 언어이다.
- 유지보수 및 확장성 용이하다.
- 분산 환경 지원한다.
- 메모리 관리에 용이하다. - 메모리를 자동으로 정리한다.
- 멀티스레딩 지원한다. - CPU를 효율적으로 사용 가능하게 한다.
- 동적이다. - 라이브러리 자동적으로 참조되고 자유롭게 새로운 기능 추가 가능하다.
'java' 카테고리의 다른 글
[Java] DFS 이진트리순회 부분집합 구하기 (0) | 2025.02.26 |
---|---|
[Java] 자바 알고리즘 문제풀이 : 피보나치 재귀(메모이제이션) (1) | 2025.02.24 |
[Java] 자바 알고리즘 문제풀이: DFS 재귀함수 (0) | 2025.02.19 |
[Spring] 싱글톤 컨테이너 (0) | 2025.02.10 |
[Spring] 객체 지향 설계 (0) | 2024.11.11 |