728x90
JAVA의 특징
장점
객체 지향 프로그램
하나의 기능을 객체 형태로 만들어 객체들을 결합하여, 하나의 프로그램을 만드는 것
(Object Oriented Programing)
(Object Oriented Programing)
- 클래스와 상속, 다형성 등을 활용하여 코드의 재사용성을 높일 수 있다.
- 한번 작성한 클래스는 다른 프로젝트나 모듈에서도 쉽게 활용할 수 있다.
- 객체들을 모듈화하여 개별적으로 설계하고 개발할 수 있기에 유지 보수가 용이하다.
< 예시 >
- 자동차 = 하나의 완성된 프로그램
- 엔진, 타이어, 휠 = 객체
- VS 구조화 프로그래밍 : 프로그램을 설계할 때 데이터 처리 절차를 미리 정해놓고, 이 순서에 따라 작업을 수행하는 방식 = 어떤 일을 해야 하는지 구체적으로 정의하고 코딩
- 코드의 재사용 성과 유지 보수성을 높일 수 있다.
- 정해진 규칙 안에서만 동작하므로 융통성이 떨어진다.
플랫폼 독립성
“Write once, run anywhere”
- 다른 컴파일 언어와 구분 짓는 가장 큰 특징
- 한번 작성한 코드가 여러 플랫폼에서 실행될 수 있다.
⇒ 자바 애플리케이션이 한 번 작성되면 다양한 운영체제 및 하드웨어에서 실행될 수 있다.
- 자바 코드는 JVM에 위해서 실행되며, JVM은 운영체제에 구애받지 않고 자바 코드 실행 가능
- JVM : 자바 바이트 코드를 어느 플랫폼에서나 동일한 형태로 실행시킨다.
가비지 컬렉션
메모리 관리를 자동으로 처리하는 가비지 컬렉션 기능이 내장되어 있어, 개발자가 명시적으로 메모리를 해제할 필요가 없다.
높은 이식성
이식성이 강하여, 다른 운영체제나 다른 CPU에서도 같은 코드를 사용할 수 있다.
- 이식성 : 애플리케이션이 하나의 플랫폼에서 다른 플랫폼으로 옮기는것이 얼마나 용이한가?
- 기존의 언어는 각각의 플랫폼마다 수치 연산 문제 등으로 인하여 약간씩 다른 코드를 사용
- 하지만, 이식성이 높으면 각각의 시스템의 특성을 고려하지 않기 때문에 최적의 성능을 얻어낼 수 없으나, 자바는 이런 단점을 극복한 언어
단점
느린 성능
자바는 고 수준의 언어로서의 특성과, 가비지 컬렉션, 메모리 관리, 멀티스레딩 등 다양한 기능을 제공하기 위해 JVM을 통해 실행되는데 이로 인해 C/C++과 같은 언어의 비해 상대적으로 느리다.
- 다만, 버전 업 되면서 다른 언어들의 장점을 흡수하고 있다.
- 람다 함수 : 함수형 프로그래밍
- Stream API : 자바 8에서 소개된 새로운 기능 중 하나로, 컬렉션 데이터를 처리하고 조작하기 위해 강력하고, 효율적인 방법 제공
- 병렬 프로그래밍 : 하나의 중앙 처리 장치가 동시에 여러 작업을 처리하는 프로그래밍
메모리 소비
가비지 컬렉션을 통해 메모리 관리를 자동으로 처리하므로 개발자가 명시적으로 메모리를 해제할 필요가 없으나, 이로 인해 메모리 사용이 비효율적일 수 있으며 장기간 실행되는 애플리케이션의 경우 메모리 누수가 발생할 수 있다.
728x90
'JAVA' 카테고리의 다른 글
컴파일 vs 인터프리터 (0) | 2024.03.30 |
---|---|
IDE - IntelliJ 설치 (0) | 2024.03.30 |
환경 변수 & 설정 (0) | 2024.03.30 |
JVM/JRE/JDK&JDK설치 (2) | 2024.03.30 |
JAVA의 역사 (0) | 2024.03.26 |