프로그래밍

[Java] 자바란?

e_yejun 2020. 4. 30. 13:53

 

 

자바란?

썬 마이크로시스템즈에서 개발하여 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. 다른 언어에 비해 작성 코드의 길이가 긴 편이다.