반응형
자바란?
- 처음부터 객체 지향언어로 개발된 프로그래밍 언어이다.
- 자바 가상 머신(JVM)을 사용하여, 운영체제와는 독립적으로 동작할 수 있다.
⇒ 자바는 어느 운영체제에서나 같은 형채로 실행될 수 있다. - 전 세계에서 가장 많이 사용하는 프로그래밍 언어 중 하나이다.
- https://www.tiobe.com/tiobe-index/ (TIOBE 언어 순위 )
자바의 특징
장점
- 운영체제와는 독립적으로 실행할 수 있다.
- 불필요한 기능을 과감히 제거하여 다른 언어에 비해 배우기가 쉽다.
- 자동 메모리 관리 등을 지원하여 다른 언어에 비해 안정성이 높다.
- 연산자 오버로딩을 금지하고 제네릭을 도입함으로써 코드의 가독성을 높였다.
- 수많은 참고 자료를 찾을 수 있다.
단점
- 실행을 위해 자바 가상 머신을 거쳐야 하므로, 다른 언어에 비해 실행 속도가 느리다.
- 예외 처리가 잘 되어 있지만, 개발자가 일일이 처리를 지정해 줘야 한다는 불편함이 있다.
- 다른 언어에 비해 작성해야 하는 코드의 길이가 긴 편이다.
자바 프로그램의 실행 과정
- 자바 컴파일러
- 자바 컴파일러는 자바를 가지고 작성한 자바 소스 코드를 자바 가상 머신이 이해할 수 있는 자바 바이트 코드로 변환한다.
- 자바 컴파일러는 자바를 설치하면 javac.exe라는 실행 파일 형채로 설치됩니다.
- 자바 바이트 코드
- 자바 바이트 코드란 자바 가상 머신이 이해할 수 있는 언어로 변환된 자바 소스 코드를 의미한다.
- 자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1바이트라서 자바 바이트 코드라고 불리고 있다.
- 자바 바이트 코드의 확장자는 .class이다.
- 자바 가상 머신만 설치되어 있으면, 어떤 운영체제에서라도 실행될 수 있습니다.
- 자바 가상 머신
- 자바 가상 머신이란 자바 바이트 코드를 실행시키기 위한 가상의 기계라고 할 수 있다.
- 자바로 작성된 모든 프로그램을 실행하기 위해서는 자바 가상 머신이 필요하다.
- 오라클은 대부분의 주요 운영체제뿐만 아니라 웹 브라우저, 스마트 폰, 가전기기 등에서도 자바 가상 머신을 손쉽게 설치할 수 있도록 지원하고 있다.
- 다른 운영체제라도 자바 가상 머신만 설치되어 있다면, 같은 자바 프로그램이 아무런 추가 조치 없이 동작할 수 있다.
- 자바 가상 머신은 운영체제에 종속적이므로, 각 운영체제에 맞는 자바 가상 머신을 설치해야 한다.
- 자바 가상 머신의 구성
- 자바 인터프리터(interpreter) : 자바 컴파일러에 의해 변환된 자바 바이트 코드를 읽고 해석하는 역할을 한다.
- 클래스 로더(class loader) : 자바는 동적으로 클래스를 읽어오므로, 프로그램이 실행 중인 런타임에서야 모든 코드가 자바 가상 머신과 연결된다. 이렇게 동적으로 클래스를 로딩해주는 역할을 하는 것이 바로 클래스 로더이다.
- JIT 컴파일러(Just-In-Time compiler) : 프로그램이 실행 중인 런타임에 실제 기계어로 변환해 주는 컴파일러를 의미한다. 동적 번역(dynamic translation)이라고도 불리는 이 기법은 프로그램의 실행 속도를 향상시키기 위해 개발되었다.
- 가비지 컬렉터(garbage collector) : 더는 사용하지 않는 메모리를 자동으로 회수해 준다. 따라서 개발자가 따로 메모리를 관리하지 않아도 되므로, 더욱 손쉽게 프로그래밍을 할 수 있도록 도와줍니다.
참고 자료
반응형
'Java' 카테고리의 다른 글
[Java] 스트림(Stream) (0) | 2022.02.16 |
---|---|
[Java] 자바 컬렉션 Map (0) | 2022.01.11 |
[Java] 자바 컬렉션 Set (0) | 2022.01.11 |
[Java] String 클래스 정리 (0) | 2022.01.08 |
[Java] 상속이란? (0) | 2022.01.06 |