본문 바로가기
JAVA

JAVA의 특징

by whitedeveloper 2022. 12. 14.

#. 플랫폼 독립성

-하드웨어, 운영체제 등 플랫폼에 종속되지 않는 독립적인 *바이트 코드로 컴파일

-*자바 가상 기계만 있으면 하드웨어/운영체제를 막론하고 자바 프로그램 실행 가능

 

*바이트 코드

- 자바 가상 기계에서만 실행되는 기계어로써, 어떤 CPU와도 관계없는 바이너리 코드

 

*자바 가상 기계

-소프트웨어로서 서로 다른 플랫폼에서 자바 프로그램이 실행되는 동일한 환경을 제공

 

#.객체 지향

-자바는 객체 지향 언어로서 캡슐화, 상속, 다형성을 제공한다.

-객체 지향 프로그램은 해결할 과제를 객체 간의 상호 관계로 모델링하여 인간의 사고에 가깝게 표현

 

#.클래스로 캡슐화

-변수나 메소드는 반드시 클래스 내에 구현하도록 한다. 즉 클래스에 속하지 않는 변수나 메소드는 존재X

-자바는 클래스 안에 새로운 클래스(내부 클래스)를 만들 수 있다.

 

#.소스와 클래스 파일

-클래스 파일 안에는 반드시 하나의 자바 클래스만 들어 있다. 

-하나의 자바 소스 파일 안에 여러 개의 클래스를 작성한 경우, 컴파일 하면 클래스마다 별도의 클래스 파일 생성

  + 하나의 자바 소스 파일에 작성된 클래스 중 오직 한 클래스만 public선언할 수 있다.(public으로 선언된 클래스 이름으로 자바 소스 파일을 저장)

 

 

#.멀티스레드

-하나의 자바 프로그램이 다수의 작업을 처리할 수 있도록 다수의 스레드가 동시에 실행할 수 있는 환경을 지원

-보통 멀티스레드 프로그램 작성을 위해서는 멀티스레드를 지원하는 운영체제와 멀티스레드 관련 api나 라이브러리가 제공되야하지만 자바는 그러한 도움 없이 멀티스레드 프로그래밍이 가능

 

#.가비지 컬렉션

-자바 언어는 할당 받는 기능은 있지만 메모리를 반환하는 기능은 없다.

-프로그램 내에서  사용되지않는 메모리는 자바 가상 기계에서 자동을 회수

 

#.실시간 응용 시스템에 부적합

-응용 프로그램 실행 도중 예측할 수 없는 시점에 가비지 컬렉션이 실행되므로 프로그램이 일시적으로 중단

-그렇기 때문에 일정 시간 내에 반드시 결과를 내야 하는 실시간 시스템에는 부적합

'JAVA' 카테고리의 다른 글

JAVA- 생성자  (0) 2022.12.14
JAVA - 객체지향  (0) 2022.12.14
JAVA 예외처리  (0) 2022.12.14
JAVA의 데이터 타입  (0) 2022.12.14
JAVA 식별자 이름 규칙  (0) 2022.12.14