Language/JAVA

[JAVA] JAVA란

khakhalog 2023. 7. 17. 12:16

1. 간단하다 (Simple)

C++에 가깝지만, 고급언어들에 있는 요소들 중 꼭 필요하지 않다고 생각된 부분은 제거했다.

 

2. 객체 지향 (Obejct-oriented)

숫자(int, float, long 등)나 논리값(true, false)을 제외한 거의 모든 것이 객체로 구성되어 있다.

실제로 자바는 Object 클래스에서 모든 클래스를 파생한다.

자바는 이러한 이유로 int, float, long, true, flase 등을 원시 자료형(primitive type)이라고 한다.

 

3. 인터프리터 언어 (Interpreted)

정확하게 말하면 컴파일 언어인 동시에 인터프리터 언어이다.

자바는 먼저 텍스트 소스를 컴파일하여 2진 파일(클래스 파일)로 만든 다음 자바 런타임이 클래스 파일을 인터프리트하면서 실행한다.

먼저 시스템에 무관한 2진 파일을 만듦으로써 자바는 컴파일 언어에 가까운 속도와 시스템 독립성을 동시에 얻을 수 있었다.

 

4. 강력하다 (robust)

자바는 포인터 연산을 지원하지 않는다. 잘못된 주소를 가리킬 가능성을 사전에 없앤 것.

자바는 모든 메모리 접근을 자바 시스템이 관리하고 제한하며 또한 예외 핸들링을 하여 시스템 붕괴의 우려가 없다.

garbage collection을 통해 사용이 끝난 리소스를 시스템이 메모리에서 삭제하는 방식을 채택하고 있어 메모리 누출에 대한 고민을 개발자가 할 필요가 없다.

 

5. 안전하다 (Secured)

자바는 자료형 타입에 굉장히 민감하다.

따라서, 일단 컴파일만 되면 실행 시 오류가 발생하는 경우가 다른 언어에 비해 현저히 낮다.

 

6. 플랫폼 독립적이다 (Platform independent)

자바의 실행 파일은 클래스 파일이다. 

따라서, 자바 런타임이 설치된 시스템에서는 어디서나 자바 프로그램을 실행할 수 있다.

가상머신에 의해서 실행되기 때문이다.

 

7. 멀티 쓰레딩 지원 (Multithreaded)

멀티 스레드를 지원할 경우 하나의 프로그램 단위가 동일한 스레드를 동시에 수행할 수 있다.

특히, 자바는 멀티 프로세서 하드웨어를 지원하도록 설계되었으므로 멀티 CPU 시스템에서 높은 효율을 낼 수 있다.

 

8. 동적이다 (Dynamic)

자바 인터페이스를 이용하면 하나의 모듈을 갱신할 때 다른 모듈을 모두 갱신할 필요가 없다.

인터페이스가 모든 인스턴스 변수와 도구의 실행문을 배제한 채 객체 간의 상호작용을 정의하기 때문이다.

 

 

reference

https://wikidocs.net/199#simple

 

01-02 자바의 특징

자바를 개발한 선 마이크로 시스템즈는 자바를 다음과 같이 정의 했다. 여기에 사용한 단어들이 자바의 특징을 잘 나타내 준다. > Java: A simple, object-ori…

wikidocs.net

 

'Language > JAVA' 카테고리의 다른 글

[JAVA] Map  (1) 2023.07.17
[JAVA] Array vs List  (1) 2023.07.17
[JAVA] JAVA 기본 구조  (3) 2023.07.17