跳至主要内容

Java Compiler와 JVM




java소스는 Java Compiler(javac)에 의해 바이트 코드로 변환됨
바이트 코드(.class파일)는 JVM에 의해 구동되고 기계어로 변환 된후 실행됨
  • 기계어에서 → 실행까지의 과정을 프로그램에서 Link되었다고 함.
  • Link되었다는 것은 프로그램이 구동되기 위해 필요한 메모리를 로딩하고, 실행될수 있도록 실행 준비를 하고, 실행 결정 및 실행 초기화하는 것.
TPCSCHOOL.com에서 따온 그림


Java compiler

  • JVM이 이해할 수 있는 자바 바이트 코드로 변환
  • 자바 컴파일러는 javac.exe라는 실행 파일로 설치 됨

Java bytecode

  • JVM이 이해할 수 있는 언어로 변환된 자바 소스 코드
  • 확장자는 .class
  • JVM이 설치되어 있으면 운영체제에 별개로 실행 가능

Java Virtual Machine

  • java bytecode를 실행시키는 가상의 machine
  • JVM은 운영체제에 종속적이고, 각 운영체제에 알맞는 JVM을 설치해야 함

JVM의 구성

  • class loader
  • interpreter
  • JIT(Just-In_Time) Compiler
  • Compiler
  • GC(garbage collector)
자바는 동적으로 클래스를 읽어오고, 프로그램이 실행 중인 런타임에 모든 코드가 자바 가상머신과 연결된다.
class loader: 동적으로 클래스를 로딩해준다.
interpreter: 자바 컴파일러에 변환된 자바 바이트 코드를 읽고 해석, dynamic translation이라고도 불리며 프로그램의 실행 속도를 향상시키기 위해 개발됨
JIT Compiler: 바이트코드(컴파일된 자바코드)를 하드웨어의 기계어로 변환

Reference → 인프런의 Java 프로그램의 실행 구조
              → [http://tcpschool.com/java/java_intro_programming]

评论

此博客中的热门博文

기초 통계 함수

데이터의 기본적인 특징을 알려주는 기초 통계량  평균 분산 표준 편자 다섯 수 치 요약 최빈값 평균 (Mean) 평균을 계산한다. mean  : 평균을 계산한다. mean( x, trim=0, na.rm=FALSE, ...) # trim은 절사평균 을 사용할 때 (0, 0.5)로 지정 # na.rm는 평균 계산전 NA를 제거할지 여부 절사평균 (Trimmed Mean)이란?    데이터를 크기 순서로 나열한 뒤 값이 작은 쪽과 큰 쪽에서 얼마만큼의 데이터를 제거한 다음 평균을 계산 분산 (var) var  : 분산을 계산한다. var(x, na.rm=FALSE) > var(1:5) [1] 2.5 > var(mpg) [1] 36.3241028225806 표준 편차 (sd) sd:  표준 편차를 계산한다. sd(x, na.rm=FALSE) 다섯 수치 요약 최소값, 제1사분위수, 중앙값, 제3분위수, 최댓값으로 요약 fivenum  : 다섯 수치 요약을 구한다. fivenum(x, na.rm=TRUE) summary는 fivenum과 유사하지만 추가로 평균까지 계산한다. 최빈값(mode) 데이터에서 가장 자주 나타난 값을 말한다. table()을 사용해 각 데이터가 출현한 횟수를 센 분할표(Contigency Table)를 만든다. table  : 분할표를 작성한다. table( ... # 팩터로 해석할 수 있는 하나 이상의 객체 ) 반환 값은 table 클래스의 인스턴스이고 인자에 지정한 팩터들의 빈도수를 구한 결과를 저장 분할표(Contigency Table)란? 값의 빈도를 변수들의 값에 따라 나누어 그린 표

R 함수

cut() cut  : 숫자들을 구간에 따라 분류해 factor로 변환한다. cut(x, breaks, right = F) # x는 숫자 vector # breaks는 구간을 저장한 vector 또는 구간의 수 # right는 breaks로 나뉘어진 구간에서 오른쪽 끝 값 사용에 대한 논리값 (T/F)으로, right = F의 경우 [a, b)로 됨 cut()에서 구간들은 (start, end] 형태로 정의되고, 0 < x <= end를 의미한다. 1~10사이의 수가 breaks에서 나눈 (0,5]와 (5, 10]구간에서 어느 곳에 속하는지 나타내는 factor를 반환한다.

Python - Numpy

random module np.random. normal (loc = 0.0, scale = 1.0, size = None) 정규 분포 확률 밀도에서 표본 추출함. 생성된 난수는 정규 분포의 형상을 가짐 Parameters: loc :  정규분포 평균 ( 중심점 ) scale :  표준편차 size : Output shape.  개수 혹은  ( 행 ,  열 ) Returns: out :  설정된  parameters 에 따른   ndarray or scalar  값을 반환 ex) np.random.normal(0, 1, (2, 3)) 평균이 0 이고 표준편차가 1 인 정규분포를 띄는 2x3 의 행렬 값을 반환 받음