새소식

Backend/Java

[Java] 특징 정리

  • -

Java의 특징


플랫폼 독립성
- 하드웨어, 운영체제 등 플랫폼에 종속되지 않고 독립적인 바이트 코드로 컴파일되며

   자바 가상 기계로 프로그램 실행이 가능

객체 지향
- 캡슐화, 상속, 다형성을 지원함

클래스로 캡슐화
- 객체 지향 언어의 캡슐화(Encapsulation) 원칙을 지켜 변수나 메소드는 반드시 클래스 내 구현되도록 함
- 클래스 안에 새로운 클래스를 만들 수 있음

소스와 클래스 파일
- 클래스 파일(.class)에는 반드시 하나의 자바 클래스만 들어 있음
- 하나의 자바 소스 파일에 작성된 클래스 중 한 클래스만 public으로 선언 가능
- 소스 파일 내 public으로 선언된 클래스의 이름으로 자바 소스 파일을 저장해야 함

실행 코드 배포
- 다수의 클래스 파일을 jar 파일 형태로 압축하여 배포하거나 실행 가능
- Java 9부터 자바 응용 프로그램을 위한 커스텀 JRE 만들어 실행 가능

패키지
- 서로 관련 있는 클래스는 패키지로 묶어 관리
- 파일 시스템의 폴더와 같은 개념

멀티스레드
- 하나의 자바 프로그램이 다수의 작업 처리할 수 있도록 다수의 스레드가 동시에 실행할 수 있는 환경 지원
- 멀티스레드를 지원하지 않는 C/C++과는 달리 자바는 운영체제의 도움 없이도 멀티스레드 프로그래밍이 가능 

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

실시간 응용 시스템에 부적합
- 자바 응용 프로그램은 실행 도중 예측 불가능한 시점에 가비지 컬렉션이 실행되므로 프로그램 실행이 일시적으로 중단됨
- 일정시간 내 반드시 실행 결과를 내야 하는 실시간 시스템에는 자바 언어가 적합하지 않음

안전성
- 타입 체크가 엄격하기 때문에 잘못된 자바 프로그램으로 시스템이 중단되는 일은 없음

프로그램 작성이 쉬움
- 스윙과 같은 GUI 라이브러리를 지원해 프로그램 작성이 빠르고 쉬움

실행 속도 개선을 위해 JIT 컴파일러가 사용됨
- 실행 도중 자바 프로그램을 해당 CPU의 기계어 코드로 컴파일하고 CPU가 바로 기계어 실행하게 하는 JIT(Just In Time) 컴파일링 기법을 이용하므로, 실행 성능이 C/C++와 거의 비슷하도록 개선됨

 

출처 : 황기태, 김효수 ⌜명품 JAVA Programming⌟, 생능출판, 2018, p.49-50

'Backend > Java' 카테고리의 다른 글

[Java] int, double형 계산 시 주의점  (0) 2023.06.02
[Java] 메소드  (0) 2023.06.01
[Java] 2차원 배열  (0) 2023.05.31
[Java] 배열  (0) 2023.05.30
[Java] 자료형  (0) 2023.05.25
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.