프로그래밍 언어/JAVA

자바의 특징

· 코딩마이데이

플랫폼 독립성

자바는 하드웨어, 운영체제 등 플랫폼에 종속되지 않는 독립적인 바이트 코드로 컴파일되며 자바 가상 기계만 있으면 하드웨어/운영체제를 막론하고 자바 프로그램의 실행이 가능하다.

 

객체 지향

자바는 객체 지향 언어로서, 캡슐화, 상속, 다형성을 지원하다.

객체 지향 프로그램은 해결할 과제를 객체 간의 상호 관계로 모델링하여 인간의 사고에 가깝게 표현한다.

 

클래스로 캡슐화

자바는 객체 지향 언어의 캡슐화(encapsulation) 원칙을 철저히 지켜, 변수나 메소드는 클래스 내에 구현하도록 한다.

클래스에 속하지 않은 변수나 메소드는 있을 수 없다. 자바는 클래스 안에 새로운 클래스, 즉 내부 클래스를 만들 수 있다.

 

소스와 클래스 파일

클래스 파일(.class)에는 반드시 하나의 자바 클래스만 들어 있다. 그러므로 하나의 자바 소스 파일에 여러 개의 클래스를 작성한 경우, 컴파일하면 클래스마다 별도의 클래스 파일이 생성된다.

 

실행 코드 배포

 

자바 응용프로그램은 한 개의 클래스 파일 또는 다수의 클래스 파일로 구성된다. 다수의 클래스 파일을 jar 파일 형태로 압축하여 배포하거나 실행할 수 있다. Java 9부터는 자바 응용프로그램을 위한 맞춤형 커스텀 JRE를 만들어 실행시킬 수 있다.

 

멀티스레드

하나의 자바 프로그램이 다수의 작업을 처리할 수 있도록 다수의 스레드가 동시에 실행할 수 있는 환경을 지원한다.보통 멀티스레드 프로그램을 작성하기 위해서는, 운영체제가 멀티스레드를 지원하고 멀티스레드와 관련된 API나 라이브러리를 제공해야만 한다.

 

가비지 컬렉션

자바 언어는 메모리를 할당받는 기능은 있지만, 메모리를 반환하는 기능은 없다. 이것은 개발자로 하여금 대단히 기쁜 일이며, 프로그래밍의 부담을 대폭 줄여준다.

프로그램 내에 사용되지 않는 메모리(가비지)는 자바 가상 기계의 가비지 컬렉션 기능에 의해 자동으로 회수된다.

 

실시간 응용 시스템에 부적합

자바 응용 프로그램은 실행 도중 예측 할 수 없는 시점에 가비지 컬렉션이 실행되므로 프로그램 실행이 일시적으로 중단된다.

 

자바 프로그램은 안전하다.

자바 언어는 타입 체크가 매우 엄격하며, C/C++와 달리 메모리의 물리적 주소를 사용하는 포인터의 개념이 없기 때문에, 잘못된 자바 프로그램으로 인해 컴퓨터 시스템이 중단되는 일은 없다.

 

프로그램 작성이 쉽다.

자바 언어는 C/C++에 있는 포인터 개념이 없기 때문에 프로그램 작성에 부담이 적다.

또한 프로그램 개발을 쉽게 도와주는 다양힌 라이브러리와 스윙 등 강력한 GUI 라이브러리를 지원하므로 프로그램 작성이 빠르고 쉽다.

 

실행 속도를 개선하기 위해 JIT 컴파일러가 사용된다.

자바는 자바 가상 기계가 인터프리터 방식으로 바이트 코드를 실행하므로 일반적으로 C/C++로 작성된 프로그램보다 실행이 느리다고 알려져 있지만, 최근에는 실행하는 도중 자바 프로그램을 해당 CPU의 기계어 코드로 컴파일하고 CPU가 바로 기계어를 실행하도록 JIT(Just in Time) 컴파일링 기법을 이용하므로, 실행 성능이 C/C++와 거의 비슷하도록 개선되었다.

 

'프로그래밍 언어 > JAVA' 카테고리의 다른 글

자바 데이터 타입  (1) 2025.01.20
식별자  (0) 2025.01.20
자바 프로그램의 구조  (0) 2025.01.19
개발 도구와 자바 플랫폼  (0) 2025.01.19
자바의 출현과 WORA  (2) 2025.01.18