자바란?
썬 마이크로시스템즈에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어
자바의 특징
1. 운영체제의 독립적이다.
- 자바는 자바가상머신(JVM)의 위에서 작동하기 때문에 운영체제와 관계없이 실행이 가능하다. (C언어인 경우 운영체제마다 코드를 조금씩 수정해야 함)
2. 객체지향언어(Object Oriented Programming Language)이다.
- 처음부터 객체 지향 개발용 언어로 설계된 언어
- 하나의 기능을 객체로 만들고, 이를 결합하여 하나의 프로그램을 만든다.
- 유지보수가 쉽고, 직관적인 코드 분석이 가능
3. 비교적 배우기 쉽다.
- 불필요한 기능을 과감히 제거하면서도 상속, 캡슐화, 다형성이 잘 적용된 객체지향언어
- 간결하면서도 명료하여 쉽게 이해할 수 있다.
4. 자동 메모리 관리를 해준다.
- C언어의 경우 malloc함수를 이용하여 메모리를 직접 관리하지만 JABA는 가비지 컬렉터(garbage collector)가 자동적으로 메모리를 관리(체크, 할당, 제거) 해준다.
5. 네트워크와 분산처리를 지원한다.
- 다양한 네트워크 라이브러리(Java API)를 통해 네트워크 관련 프로그램을 비교적 쉽게 개발할 수 있다.
6. 멀티쓰레드(multi-thread)를 쉽게 구현한다.
- 운영체제마다 멀티쓰레드를 이용하는 방식이 다르지만 Java의 경우 Java API를 이용하기 때문에 시스템과 관계없이 구현가능하다.
- 여러 쓰레드에 대한 스케줄링을 자바 인터프린터가 담당하게 된다.
7. 동적 로딩(Dynamic Loading)을 지원한다.
- 실행 시에 미리 객체를 만들지 않고, 필요한 시점에 동적으로 객체를 생성할 수 있다.
- 일부 클래스가 변경되어도 전체 어플리케이션을 다시 컴파일 하지 않아도 된다.
8. 다양한 프로그램 개발가능
- 콘솔, UI, 서버, 모바일 등 다양한 프로그램을 개발할 수 있다.
- JavaSE(기본), JavaEE(서버), JavaME(임베디드, 모바일)
자바의 단점
1. 실행을 위해 자바 가상 머신(JVM)을 거쳐야 하므로, 다른 언어에 비해 실행 속도가 느리다.
2. 예외처리가 잘 되어 있지만, 개발자가 일일이 처리를 지정해줘야 하는 불편함이 있다.
3. 다른 언어에 비해 작성 코드의 길이가 긴 편이다.