Published 2021. 7. 23. 16:39
반응형

자바의 특징

- 단순성

 : C++과 비교하여 자바는 여러 가지로 단순하다. 특히 포인터가 사용되지 않으며,

   C++의 많은 불필요한 기능들을 자바에서는 제거되었다.

 

- 안정성

 : 자바는 다음과 같은 속성과 구성요소 때문에 안전하다.

   1) 포인터의 미사용

   2) 바이트 코드 변수

   3) 클래스 로더

   4) 보안 관리

 

-  이식성

 : 자바 코드는 가벼워서, 어떠한 플랫폼에서도 실행이 가능하다. 바이트 코드를 이용해서

   어떠한 플랫폼에서도 컴파일에 자바 소스 코드를 수록할 수 있어서 독립적.

 

- 객체 지향성

 : 자바는 객체 지향 언어로 오랫동안 새로운 언어를 생산.

 

- 강력성

 : 자바는 강력한 언어로서 사소한 프로그램의 오류로 용납하지 않고, 대응 능력을 가지고 있는 장점으로 구분.

 

- 다중 스레드

 : 다중 스레드는 프로그램의 능력을 의미하며, 동시에 프로그램 코드의 조각들을 단일 처리 시스템에서

   시분할 실행을 가능하게 해주는 기능이다. 아울러 다중 스레드에서 적절한 분배를 하여 실행하지만

   동시에 처리하는 느낌을 갖는다.

 

- 인터프리터

 : 자바는 인터프리터 언어로서 프로그램을 작성할 때, 클래스 파일로 편집되어 실행한다. 하지만 문장을

   해석할 때는 매우 느리게 처리된다. 하지만 자바에서 바이트 코드에 번역되어, 이것은 빠르게 이식되기

   때문에 느린 단점을 보완한다.

 

- 구조의 중립성

 : 자바는 어떠한 특별한 마이크로프로세서 계열, 또는 특별한 구조에게 의존하지 않기 때문에 다양한

   컴퓨터 또는 소형 전자계산기에서도 자바 프로그램을 실행할 수 있고, 또한 휴대폰에서도 자바

   소프트웨어를 기반으로 작성.

 

- 분산처리

 : 자바는 분산처리 시스템에서 사용하기 쉬운 언어로 다양한 내장성을 가진다.

   자바 프로그램의 실행 단계

    - 자바는 인터프리터 언어로 분류되지만 컴파일러 기반의 C 또는 C++ 언어는 고수준의 언어로 소스코드들을. c와. cpp로 작성.

 

    <컴파일러 언어의 작성단계>

      소스 코드 → 컴파일러 → 실행파일

      C또는 C++ 언어는 실행할 수 있는. exe로 지정된 기계어 파일을 작성하지만 실행하기 위해 운영체제에서 처리된다.

 

- 바이트 코드

: 바이트 코드는 실제로 플랫폼 독립된 파일로 컴퓨터는 그것을 기계어로 간주.

 자바 코드. java 소스파일을 작성해서 자바 컴파일러에 의해 자바 코드. class로 번역.

 

<자바 컴파일러 언어의 작성단계>

자바 소스코드 → 자바 컴파일러 → 자바 바이트 코드

 

- 가상 기계(Virtual Machine)

 : 실제 기계가 아닌 것을 실질적인 이름을 나타내지만 단지 자바 프로그램이 진행될 것 으로 간주한 기계를 나타내는 프로그램.

   가상기계는 바이트 코드에 프로그램을 실행하는 하드웨어인 것처럼 간주함.

 

- 인터프리터 언어의 장단점

 : 초창기에 인터프리터 언어들의 번역 기능은 매우 달라서 소스 코드는 한 줄씩 실행. 번역 후에 실행되기 때문에 실행 속도는 매우 느렸다.

   자바는 인터프리터 언어이나 다른 구동방식을 사용한다. .java에 작성되어 컴파일되며 바이트 코드의. class 파일로 지정된 가상 기계어로

   작성되고 인터프리터에 의해 실행된다. 바이트 코드를 번역하기 때문에 실행 속도는 예전 언어들보다 빠르고 컴파일러에 비해 속도는

   느리다. 아울러 아키텍처의 발달로 인해 다른 언어만큼 빠르게 진행될 것으로 예상된다. 자바의 중요한 장점은 하드웨어 플랫폼에

   독립적이라는 것이다. 이는 다른 유형의 컴퓨터에서도 JVM이 존재하면 바이트 코드를 실행시킬 수 있다는 것이다. 다양한 하드웨어와

   소프트웨어 플랫폼이 존재하는 인터넷 기반에서 JVM의 독립성은 큰 장점으로 부각된다.

 

자바 바이트 코드 → 자바 가상기계 컴퓨터 → Window JVM

                                                               → UNIX JVM

                                                               →Linux JVM

 

 

 

* 개인적인 공부에 관련 된 포스팅이며, Java Programming 입문 마스터 (저자 : 이태동, 임정목, 오연재)의 내용을 정리한 내용입니다.

반응형
복사했습니다!