JAVA CODE 를 JAVAC 가 컴파일 해주고, JAVA Byte code 가 나온다.
JAVA 코드 실행 요약 설명
프론트엔드 : 소스코드를 분석해서 의미 파악하여 추상 구문 트리(AST) 가 생성되는 과정
백엔드 : 중간 계층 표현을 어셈블리 언어로 변경하는 과정
JAVA MEMORY?
모든 스레드가 공유하는 영역
스레드 별로 있는 영역
package main;
class Main {
public int test() {
int a = 4;
int b = 3;
return a + b;
}
}
// 컴파일 후 javap 로 바이트 코드를 확인하면 다음과 같다.
// javap : 클래스 파일의 바이트 코드를 소스와 함께 보여주는 디어셈블
$ javac main.java
$ javap -c Main.class
Compiled from "main.java"
class main.Main {
main.Main();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
// opernad stack
**public int test();
Code:
0: iconst_4
1: istore_1
2: iconst_3
3: istore_2
4: iload_1
5: iload_2
6: iadd
7: ireturn**
}