2/13 자바 정리

태량·2023년 7월 11일
0
  1. JDK와 JRE에 대하여

    • JDK는 java development kit으로 컴바일러가 핵심이다.
    • JRE는 java Runtime Enviroment로써 런타임의 핵심 JVM이 여기서 핵심이다. 또한 java의 핵심 라이브러리가 포함된다. (java.lang 패키지, java.util 패키지 등등)
    • 현재는 JDK에 JRE도 함께 포함되서 배포된다.
  2. JIT 컴파일러는 Java compiler와 같은 선상에 있는게 아니라, JVM에 속하며 Execution 단계에서 바이트 코드중 빈번하게 사용되는 코드를 바이너리로 캐싱 해놓고, 빠르게 실행 시키는 목적이 있다.

  3. 컴파일 작업이 있지만, C 계열과는 다르게 컴퓨터가 바로 이해 할 수 있는 바이너리 코드가 아니라 JVM이 이해 할 수 있는 바이트 코드로 컴파일한다. 이 바이트 코드가 JVM에 로드되어 JVM에서 인터프리터 방식으로 실행 된다. 그래서 자바는 컴파일과 인터프리터 요소를 함께가지며, 거기에 더해 JIT의 도움을 받아 보다 더 효율적인 실행을 보장한다.

  4. 전 처리 과정은 jdk에서 실시 된다.

  5. java.lang에는 어떤 클래스들이 포함돼 있을까?

    Untitled

  • 인상 깊은게 lang 패키지안에 invoke 패키지가 있는데, 이것은 리플렉션 method invoke와는 다르다. invoke 패키지는 jvm의 전반적인 실행과 관련된 클래스들의 패키지라고 보면 된다.
  • 또 인상 깊은 것은 박싱 클래스들도 여기에 들어가 있다.
  1. Native 코드들은 Java Native Interface를 통해 바이트 코드로 변환되는 과정을 거치고, JVM에서 사용된다. → 바로 바이너리 코드를 사용하는줄 알았는데.
    이인ㅌㅌ
  2. 인텔리제이에서 Edit Configurations -> VM options -> -verbose:gc -XX:+PrintCommandLineFlags 를 입력하면 된다. 이런식으로 GC에 대한 정보를 볼 수 있다.

Untitled

profile
좋은 영향력과 교류를 위하여

0개의 댓글