본문 바로가기
CS/JAVA

[JAVA] 개요

by 두둠칫 2020. 10. 11.

1. JAVA 개요

 

1) 특징

OS에 독립적

JAVA 프로그램은 JVM과 통신하고 JVM이 JAVA 프로그램의 명령을 OS가 이해할 수 있도록 변환 후 전달

JVM은 OS에 종속적이어서 OS에 따라 구별되는 버전이 존재

 

2) 객체지향

상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어라고 평가됨

 

3) 자동 메모리 관리(Garbage collection)

Garbage collector가 자동적으로 메모리를 관리, 프로그래머는 따로 관리하지 않아도 괜찮다

 

4) 네트워크, 분산처리를 지원

다양한 API 지원

 

5) 멀티쓰레드 지원

특히 시스템과 관계없이 구현 가능, API지원

여러 쓰레드에 대한 스케줄링은 JAVA Interpreter가 담당

 

6) 동적 로딩(Dynamic Loading) 지원

'실행 시'가 아닌 '필요 시' Class가 Load된다

일부 변경 시에도 부분 Compile이 가능하다

 

* dynamic vs lazy 

 

7) JVM

JAVA는 JVM을 거치기 때문에 일반 APP 코드보다 속도가 느림, 하지만 최근 최적화 기술로 격차를 줄임

 

* 후에 더 깊은 내용 학습

 

 

2. Hello.java

 

1) Hello.java

 

Hello.java -> (javac.exe) -> Hello.class -> (java.exe) -> 실행

 

* javac.exe : 자바 컴파일러

  java.exe : 자바 인터프리터

 

자바의 모든 코드는 Class 안에 존재해야하며, 이 Class들이 모여 하나의 JAVA Application을 이룬다.

* Class 내 Public class는 유일하다.

* Public class가 있는 경우, 소스파일의 이름은 반드시 Public class 이름과 일치해야한다.

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

[JAVA] Abstract, Interface  (0) 2021.01.12
[JAVA] 상속, 다형성, 캡슐화  (0) 2021.01.12
[JAVA] 데이터의 메모리 할당 순서  (0) 2021.01.12
[JAVA] 변수와 메서드  (0) 2020.10.30
[JAVA] 변수 : 타입  (0) 2020.10.11