기초튼튼/JAVA
자바의 특징
limsungju
2019. 1. 14. 23:27
- 자바(Java Programming Language)
1990년대 초에 JAVA가 탄생하였으나, 일반적으로 사람들이 알게 된 시기는 1990년대 말이다.
제임스 고슬링이라는 사람이 가전제품의 효율적인 사용을 위한 프로그램 언어로 JAVA를 만들었다.
하지만, 기존의 C/C++에 비해서 속도가 많이 느려 사람들로부터 외면을 받았다.
1990년대 말에서 2000년대에 들어오면서 인터넷의 등장으로 JAVA를 외면했던 사람들로부터 관심을 얻기 시작했다.
- JAVA는 대표적으로 3가지의 플랫폼을 이루고 있다.
JAVA SE(Stand Edition) : JAVA Application 개발 > 일반적인 어플리케이션 개발
JAVA ME(Mobile Edition) : 휴대 가능한 소형 디바이스에 사용을 목적으로 개발 > 현재의 스마트폰 등장으로
쇠퇴
JAVA EE(Enterprise Edition) : 기업 솔루션 개발 > 가장 핵심 - 자바언어의 특징
2.1 운영체제에 독립적이다.
Virtual Machine - 운영체제(Windows, Linux, MAC OS)의 영향을 받지 않는다.
2.2 자동 메모리 관리(Garbage Collection)
Garbage Collection - 자바로 작성된 프로그램이 실행되면, 가비지컬렉터(garbage collector)가 자동적으로
메모리를 관리해주기 때문에 개발자는 메모리 관리를 하지 않는다.
2.3 객체지향언어이다.
Object Oriented Program(OOP) - 객체지향 언어로 개발과 유지보수를 효율적으로 진행 할 수 있다.
- 객체지향개념의 특징으로는 상속, 캡슐화, 다형성이 있다.
2.4 네트워크와 분산처리를 지원한다.
인터넷과 대규모 분산환경을 염두에 두어 다양한 네트워크 프로그래밍 라이브러리(Java API)를 통해 비교적
짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원한다.
2.5 멀티쓰레드를 지원한다.
일반적으로 멀티쓰레드(multi-thread)의 지원은 사용되는 운영체제에 따라 구현방법도 상이하며, 처리 방식
도 다르다. 그러나 자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관계없이 구현가능하며, 관련된 라
이브러리(Java API)가 제공되므로 구현이 쉽다. 그리고 여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담
당하게 된다.
2.6 동적 로딩(Dynamic Loading)을 지원한다.
보통 자바로 작성된 애플리케이션은 여러 개의 클래스로 구성되어 있다. 자바는 동적 로딩을 지원하기 때문
에 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다는 장점이 있다.
그 외에도 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일하지 않아도 되며, 애플리케이션의 변
경사항이 발생해도 비교적 적은 작업만으로도 처리할 수 있는 유연한 애플리케이션을 작성할 수 있다.
- 자바의 단점으로는 속도문제가 가장 대표적인 것인데 바이트코드(byte code)를 하드웨어의 기계어로 바로 변환해주는 JIT컴파일러와 Hotspot과 같은 신기술의 도입으로 JVM의 기능이 향상됨으로써 속도문제가 상당히 개선되었다.