JAVA의 정석 | Chapter 1 : Write Once, Run Anywhere

Yunny.Log ·2022년 5월 9일
0

JAVA

목록 보기
6/29
post-thumbnail

JAVA의 특징

1) 운영체제에 독립적
2) 객체지향 언어
3) 낮은 러닝커브
4) 자동 메모리 관리(Garbage Collection)

  • 자바로 작성된 프로그램 실행 시 가비지 컬렉터가 자동적으로 메모리 관리
    => 프로그래머는 따로 메모리 관리할 필요 x

5) 네트워크와 분산처리 지원
6) 멀티스레드 지원

  • 또한 여러 thread에 대한 스케줄링을 자바 인터프리터가 담당

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

  • 자바 작성 애플리케이션은 여러 클래스로 구성
  • 자바는 동적로딩을 지원하기 때문에 실행 시 모든 클래스가 로딩되지 않고 필요한 시점에 클래스 로딩해 실행 가능 장점 가짐

JAVA의 작동 구조

  • 자바는 JVM이라는 가상머신 위에서 실행이 된다. 자바 애플리케이션은 무조건 JVM 위에서 실행된다
  • 이 덕분에 OS에 종속적이지 않게 된다는 장점을 지닌다.

속도 문제 가진다
1) - 일반 애플리케이션 코드는 os만 거치고 하드웨어로 전달되는 데 비해 java 애플리케이션은 JVM을 한번 더 거침
2) 하드웨어에 맞게 완전 컴파일된 상태가 아니라 실행 시 해석되어, 속도 느림

  • 그러나 요즘 바이트 코드 (컴파일된 자바 코드)를 하드웨어 기계어로 바로 변환해주는 컴파일러와 최적화 기술 적용 덕에 속도 격차 줄어듦

왜 자바를 OS 독립적이라고 하냐!? (Write Once, Run Anywhere)

  • 다른 일반 애플리케이션은 OS에 딱 붙어있다.
  • 그러나 JAVA는 OS와 애플리케이션 사이를 JVM이 당당히 가로막고 있다

일반 애플리케이션

  • 다른 OS에서 실행시키기 위해서는 애플리케이션은 OS에 맞게 변경 NEEDED

자바

  • JAVA 애플리케이션은 JVM하고만 상호작용을 하기 때문에 OS와 하드웨어 독립적, 어떤 OS라도 프로그램 변경 없이 실행이 가능하다~

JDK

  • 자바 개발 도구 키트라고 보면 된다.
  • JRE, JVM 이 모두 JDK안에 들어있는 것

자바 컴파일 과정

1) 자바 원시 코드 (a.java)
2) javac.exe 컴파일
3) 자바 바이트 코드 (a.class) 생성

  • JVM이 이해가능한 것이 바이트 코드이다.
    4) java.exe 실행
    5) 코드 실행 완료

자바 프로그램의 실행 과정

1) 프로그램의 실행에 필요한 클래스 (.class 파일 로드)
2) 클래스 파일 검사 (파일 형식, 악성 코드 체크)
3) 지정된 클래스에서 main(String[] args) 호출

0개의 댓글