본문 바로가기
프로그래밍 언어/자바

자바의 특징 및 장점

by 블루데이제이 2019. 2. 3.
728x90
반응형

자바를 처음 접하는 분들을 위해 자바란 어떤 것이며 어떤 특징을 가지고 있는지 알아보자.


앞서 자바개요에서 언급한 바 있지만 자바의 특징은 다음과 같다.


1. 운영체제에 독립적이다.

모든 컴퓨터에는 운영체제라는 것이 있다. Windows7, Windows8, Windows10 등이다. 그러나 운영체제는 윈도우만 있는것이 아니라, Linux, Unix, MacOS등 수많은 운영체제를 가지고 있다. 각 운영체제는 그 특징이나 내부 구현원리, 동작환경 또한 다르다. 어느 하나의 운영체제에서 작동하도록 만든 프로그램이 다른 운영체제에서 제대로 작동하는것을 기대하기란 어렵다.


윈도우용 배틀그라운드가 리눅스나 MacOS에서 작동하지 않을 것이다. 즉, 윈도우용 배틀그라운드, 리눅스용 배틀그라운드, MacOS용 배틀그라운드를 만들어야 한다. 그러나 자바에서는 VM(Virtual Machine)을 이용해 플랫폼에 상관없이 작동할 수 있도록 해준다.



2. 객체지향 언어이며, 배우기 쉽고 문법이 간결하다.

객체지향-OOP(Object Oriented Programming)는 오늘날 고급 프로그래밍 언어라고 볼 수 있는 대부분의 언어가 채택하고 있는 프로그래밍 방법론이다. 


자바는 배위기 쉽고 문법이 간결하다. 그렇기 때문에 자바를 배우기 시작한 시점에서 실제 사용 가능한 수준까지 도달하는데 걸리는 시간이 C/C++보다 짧다. 


3. 포인터(Pointer)를 다룰 필요없이 메모리 관리를 가상 머신이 수행한다.

포인터를 다룰 필요없다는 말은 프로그램에서 메모리를 해제할 필요가 없다는 뜻이 아니라, 메모리 해제를 사용자가 명시적으로 해줄 필요가 없다는 뜻이다. 즉, 자바에서의 메모리 관리는 사용자 관리가 아니다. 자바에서의 메모리 해제는 GC(Garbage Collector)가 알아서 처리해 준다.


4. 네트워크, 분산처리, 멀티 쓰레딩(Multi Threading)을 지원한다.

자바는 쓰레드(Thread)를 언어 자체에서 기본적으로 지원한다. 또한 플랫폼에 상관없이 쓰레드를 사용하고 제어할 수 있다.


 프로세스(Process)와 쓰레드(Thread)


 1) 프로세스(Process)

 - 레지스터, 스택, 포인터, 실행중인 프로그램, 데이터 등의 집합체

 - 실행중인 프로세스

 - 프로세서에 의해 수행되는 프로그램 단위로 현쟁 실행 중이거나 곧 실행 가능한 PCB(Process Control Block)을 가진 프로그램 


 2) 쓰레드(Thread)

 - 제어의 흐름을 의미하는 프로세스에서 실행의 개념

  



5. C/C++로 작성된 프로그램에 비해서도 실행 속도가 뒤지지 않는다.

요즘 하드웨어 성능이 뛰어나 C/C++로 작성한 프로그램과 비교했을 때 체감상 속도가 뒤쳐지지 않는다.


728x90
반응형

'프로그래밍 언어 > 자바' 카테고리의 다른 글

자바 개발환경 구축 #2  (0) 2019.02.04
자바 개발환경 구축 #1  (0) 2019.02.04
JVM(Java Virtual Machine)  (0) 2019.02.03
자바 분류 및 버전  (0) 2019.02.02
자바개요  (1) 2019.02.02