1. 장점
■ 객체지향 언어이다.
- 자바는 객체지향 프로그래밍 (Object Oriented Programming)이다.
객체들을 먼저 생성하고, 이것들을 조립, 연결하여 프로그램을 완성하는 프로그래밍 기법이다.
- OOP의 4대 특징으로 상속, 추상화, 캡슐화, 다형성이 있다.
■ 운영체제에 독립적이다.
- 어떤 OS라도 자바 실행 환경( JRE : JAVA RUNTIME ENVIRONMENT )가 구축되어 있다면 자바를 실행할 수 있다.
- JVM 위에서 돌아가기 때문에 CPU나 OS에 종류와 무관하게 동일하게 동작한다.
■ Garbage Collector
- C언어나 C++에서는 개발자가 직접 메모리 설정/해제를 하여야 합니다.
자바에서는 JVM이 메모리를재사용할 수 있도록 사용하지 않는 메모리를 자동 해제합니다.
■ 멀티스레드를 쉽게 구현 가능하다
- 자바는 하나의 프로그램에서 여러 개의 쓰레드가 동시에 실행할 수 있는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하여 운영체제와 상관없이 멀티 스레드를 쉽게 구현할 수 있다.
■ 동적 로딩을 지원한다.
- 자바는 Application이 실행될 때 모든 객체가 생성되는 것이 아니라, 객체가 필요한 시점에 클래스를 동적으로 로딩하여 생성합니다.
- 클래스 일부 변경 시 다시 컴파일하지 않아도 되는 이점이 있고,
변경사항이 발생해도 비교적 적은 작업으로 처리할 수 있는 Application을 만들 수 있습니다.
■ 오픈 소스 라이브러리가 풍부하다.
- 자바는 오픈 소스 언어이고, 자바에서 사용하는 라이브러리 또한 방대하다.
- 유지보수를 쉽고 빠르게 진행할 수 있다.
2. 단점
- 자바는 JVM을 거쳐서 실행하므로 다른 언어에 비해 실행 속도가 느리다.
- 다른 언어에 비해 작성해야 하는 코드의 길이가 긴 편이다.