#. 플랫폼 독립성
-하드웨어, 운영체제 등 플랫폼에 종속되지 않는 독립적인 *바이트 코드로 컴파일
-*자바 가상 기계만 있으면 하드웨어/운영체제를 막론하고 자바 프로그램 실행 가능
*바이트 코드
- 자바 가상 기계에서만 실행되는 기계어로써, 어떤 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 |