😒 저 저 저 개념없는 나/🤝🏻 자바를 JAVA

[Java] 자바의 특징

우주수첩 2022. 3. 12. 22:09
728x90

 

JAVA가 처음 출시되었을 당시 다른 프로그래밍 언어와 달리 특색 있었던 것은

어떤 컴퓨터 기종에서도 실행이 가능하다는 것이다.

일단 프로그래밍을 작성하면 하드웨어나 운영 체제의 종류에 관계 없이 동일한 모습으로 실행할 수 있다

Wirte Once, Run Everywhere

 


 

자바의 개발진이 공개한 자바 언어 설계 목표를 요약하여 알아보자

 

 

1. 단순

 

c++에서 출발하여 많이 사용하지 않던 불필요한 기능들은 삭제하고 꼭 필요로 하는 기능들만 포함하였다.

또한 c++에서 제공되지 않았던 자동 메모리 관리기능, 멀티 스레드, 방대한 라이브러리 등을 무료로 제공한다.

구현 시 라이브러리를 사용하여 원하는 프로그램을 힘들이지 않고 작성할 수 있다.

 


 

2. 객체 지향

 

자바에서는 기본 데이터 타입등을 제외한 거의 모든 것이 객체로 표현된다.

C++은 여전히 절차지향적인 특성을가지고 있다.

 


3. 분산 환경 지원

 

자바는 TCP/IP, HTTP, FTP같은 프로토콜을 처리할 수 있는 라이브러리를 가지고 있기에

다른 언어보다 쉽게 네트워크 관련 프로그램을 개발할 수 있다. ex ) Spring

 


4.견고

 

보다 신뢰성 있는 프로그램을 만들기 위하여 오류를 만들 수 있는 원인들을 제거하였다. 

ex) C언어에 있던 포인터 개념을 삭제, 컴파일 시에 강력하게 데이터 타입을 검사한다.

  => 포인터의 단점을 제거하고 장점만을 취할 수 있도록 설계


 

5. 안전 

 

네트워크 환경에서 운영되는 언어이기에 안전성에 대한 중요성이 요구된다.

바이러스, 파일의 삭제 및 수정, 데이터  파괴작업이나 컴퓨터 오류 연산등을 방지하면서 실행되도록 설계되었다.


 

6. 컴퓨터 구조에 중릭적

 

자바의 컴파일러는 바이트 코드로 변역된다.

이는 어떤 컴퓨터에서도 해석하기 쉽고, 특정 프로세서의 명령어로 쉽게 변역될 수 있기에

서로 다른 기종의 컴퓨터에서도 자바는 실행 가능하다.

 


7. 이식성

 

하드웨어에 관계 없이 사용하기 위해 하드웨어 구조, 운영체제,

윈도우 시스템에 독립적인 바이트 코드를 사용한다.

더 나아가 기본 데이터 유형의 크기와 그 연산자의 행동을 명확하게 정의하는 등

기본 언어 정의를 엄격하게 함으로써 이식성을 높인다.

이로인해 모든 플랫폼에서 동일한 실행 결과를 생성한다.

 


8. 고성능 

 

자바는 매 번 실행할 때마다 바이트 코드를 해석 해야 하기에 실행속도가 느린편이다.

이를 해결하고자 자바 코드를 실제 컴퓨터의 기계어로 직접변환하는 JIT 컴파일러 개념이 도입되었다.

이는 인터프리트 과정 없이 프로그램이 직접 실행될 수 있도록 한다. == 속도 up


9. 멀티스레딩

 

많은 작업을 동시에 할 수 있음을 의미한다. CPU를 효율적으로 사용할 수 있다.

ex) 브라우저에서 음악을 연주하며 데이터를 다운 / 이미지를 다운받으며 페이지 스크롤


10. 동적

 

C나 C++은 라이브러리들이 변경되면 소스파일들을 다시 컴파일, 링크하여 새로운 실행 파일을 생성.

자바는 실행되기 직전에 라이브러리를 동적으로 링크하므로 실행할 때 변경된 라이브러리가 자동적으로 참조된다.

 

 

아무래도 C언어에서 파생된 언어이다 보니 C언어랑 비교를 하는 경우가 많은 것 같다.

그리고 작성하다 보니 C언어와 JAVA의 차이가 궁금해져서 다음 게시물에는 그에 대하여 정리해 볼 것 같다!!

 

참고 문서 : power JAVA 2

http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788992649865

728x90