장점

  1. 운영체제에 독립적이다.
    • 자바 응용 프로그램이 JVM하고만 통신하고 JVM이 운영체제가 이해할 수 있도록 변환한다.
    • 한번 작성하면, 어디서나 실행된다. (Write once, run anywhere)
  2. 객체지향언어이다.
    • 객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어 이다.
  3. 비교적 배우기 쉽다.
    • 연산자와 기본 구문은 C++, 객체지향과련 구문은 스몰톡(small talk)이라는 객체지향언어에서 가져왔다.
    • 객체지향언어의특징인 재사용성과 유지보수의 용이성 등의 장점에도 불구하고 배우기 어려웠으나 자바의 간결하면서 명료한 객체지향적 설계를 사용자들이 쉽게 이해하고 활용할수 있다.
  4. 자동 메모리 관리(Garbage Collection)
    • 자바 프로그램이 실행되면 가비지 컬렉터(carbage collector)가 자동으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리하지 않아도 된다.
    • 프로그래머가 사용하지 않는 메모리를 체크하고 수동적으로 처리하는 일을 대신해준다.
  5. 네트워크와 분산처리를 지원한다.
    • 네트워크 프로그래밍 라이브러리를 통해 네트워크 프로그램을 쉽게 개발 할수 있다.
  6. 멀티쓰레드를 지원한다.
    • 일반적으로 멀티쓰레드는 운영체제에 따라 구현 방법이 다르지만 자바에서 개발되는 멀티쓰레드 프로그램은 운영체제와 관계없이 구현 가능하다.
    • 멀티 쓰레드 관련된 라이브러리를 제공한다.
    • 멀티 쓰레드에 대한 스케줄링을 자바 인터프리티가 담당한다.
  7. 동적 로딩(Dynamic Loading)을 지원한다.
    • 모든 클래스를 로딩되지 않고 필요한 시점에 클래스를 로딩한다.
    • 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일 하지 않아도 된다.

단점

  1. 속도 문제
    • 프로그램과 운영체제 사이에서 JVM이 바이트 코드를 플랫폼용 기계어로 실시간 변환 하는 과정에서 실행 속도가 느리다.

'개발 언어 > Java' 카테고리의 다른 글

[Java] 실수형의 소수점 표현 방식과 BigDecimal  (0) 2021.08.13
[Java] 오버 플로우, 언더 플로우  (0) 2021.08.12
[Java] 상수와 리터럴  (0) 2021.08.11
[Java] 기본형과 참조형  (0) 2021.08.11
[Java] 명명 규칙  (0) 2021.08.11

+ Recent posts