# 장점

1. 운영체제에 독립적이다. 

- JAVA는 JVM을 통해 동작하기 때문에 특정 운영체제에 종속되지 않는다.

 

2. 객체지향언어이다.

- 객체지향적으로 프로그래밍을 하기 위한 여러 지원을 하고있다. 

> 캡슐화, 다형성, 상속, 추상 등등.. 

 

3. 메모리 관리가 자동으로 이루어진다. 

- JVM 내에 GC (Garbage Collector)라고 불리는 스레드에 의해 메모리 관리가 자동으로 이루어져

  비즈니스 로직에 집중할 수 있다. 

 

4. 멀티 스레드를 쉽게 구현 가능하다.

- 자바 API는 스레스 생성 및 제어와 관련된 기능을 제공한다. 

  고로 실행되는 운영체제에 상관없이 멀티 스레드의 구현이 편리하다.

 

5. 동적로딩(Dynamic Loading)을 지원한다. 

- 어플리케이션이 실행될 때 모든 객체가 생성되지 않고 필요한 시점에 생성한다. 

  클래스를 수정하는 경우 해당 클래스만 다시 컴파일하기 때문에 유지보수가 쉽고 빠르다. 

 

# 단점 

 - 비교적 속도가 느리다. 

 자바는 모든 코드가 한번에 모든 코드가 컴파일 되지 않고 실행단위로 컴파일이 이루어진다. 

 고로 다른 언어에 비해 속도가 느리다. 하지만 요즘엔 JIT 컴파일러 같은 기술 적용으로 JVM 기능이 향상되어 

 속도 격차가 많이 줄었다. 

 

- 예외처리가 불편하다. 

프로그래머 검사가 필요한 예외가 등장한다면 무조건 프로그래머가 선언을 해주어야한다. 

 

 

 

참고 -- 

http://yolojeb.tistory.com/17

 

 

 

+ Recent posts