자바란?
자바는 썬 마이크로시스템즈(Sun Microsystems, Inc. 이하 썬)에서 개발하여 1996년 1월에 공식적으로 발표한 객체 지향 프로그래밍 언어이다.
자바의 특징
1. 운영체제에 독립적
일종의 에뮬레이터인 자바 가상 머신(JVM)을 통해 자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM 하고만 통신하고 JVM이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 반환하여 전달한다. 자바로 작성된 프로그램은 운영체제에 독립적이지만 JVM은 운영체제에 종속적이어서 썬에서는 여러 운영체제에 설치할 수 있는 서로 다른 버전의 JVM을 제공한다.
2. 객체지향 언어
자바는 객체지향 개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체 지향 언어라는 평가를 받고 있다.
3. 자동 메모리 관리(Garbage Collection)
자바로 작성된 프로그램이 실행되면, 가비지 컬렉터(garbage collector)가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리하지 않아도 된다.
4. 네트워크와 분산처리를 지원
인터넷과 대규모 분산 환경을 염두에 둔 까닭인지 풍부하고 다양한 네트워크 프로그래밍 라이브러리(Java API)를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원한다.
5. 멀티 쓰레드를 지원
자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관계없이 구현 가능하며, 관련된 라이브러리(Java API)가 제공되므로 구현이 쉽다. 그리고 여러 쓰레드에 대한 스케쥴링(scheduling)을 자바 인터프리터가 담당하게 된다.
6. 동적 로딩(Dynamic Loading)을 지원
자바는 동적 로딩을 지원하기 때문에 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다는 장점이 있다. 그 외에도 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일하지 않아도 되며, 애플리케이션의 변경사항이 발생해도 비교적 적은 작업만으로도 처리할 수 있는 유연한 애플리케이션을 작성할 수 있다.
자바 가상 머신(JVM)
JVM(Java virtual machine) : 자바를 실행하기 위한 가상 기계
‘가상 기계’는 소프트웨어로 구현된 하드웨어를 뜻하는 넓은 의미의 용어이며, 컴퓨터의 성능이 향상됨에 따라 점점 더 많은 하드웨어들이 소프트웨어화 되어 컴퓨터 속으로 들어오고 있다.
가상 컴퓨터는 실제 컴퓨터(하드웨어)가 아닌 소프트웨어로 구현된 컴퓨터라는 뜻으로 컴퓨터 속의 컴퓨터라고 생각하면 된다.
자바로 작성된 애플리케이션은 모두 이 가상 컴퓨터(JVM)에서만 실행되기 때문에, 자바 애플리케이션이 실행되기 위해서는 반드시 JVM이 필요하다.
일반 애플리케이션의 코드는 OS만 거치고 하드웨어로 전달되는데 Java 애플리케이션은 JVM을 한 번 더 거치기 때문에, 그리고 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행 시에 해석(interpret)되기 때문에 속도가 느리다는 단점을 가지고 있다.
'Server > 자바의정석' 카테고리의 다른 글
[Java 입문] 연산자2 (0) | 2022.09.26 |
---|---|
[Java 입문] 연산자1 (0) | 2022.09.26 |
[Java 입문] 형변환 (0) | 2022.09.26 |
[Java 입문] 기본형과 참조형 (0) | 2022.09.25 |
[Java 입문] 변수와 타입 (variable & type) (0) | 2022.09.25 |