class 역 컴 파일 파일 파일 분석
자바 소스 코드:
/**
* Copyright (c) 2011 Trusted Software and Mobile Computing(TSMC)
* All rights reserved.
* Author: Jarg Yee <[email protected]>
* http://jarg.iteye.com/
*/
/*
* 【 】 class
*/
public class Parse
{
public static void main(String[] args)
{
int x = 7;
int y = 3;
x = x++;
y = ++y;
System.out.println(x);
System.out.println(y);
}
}
역 컴 파일 후 명령:
자바 역 컴 파일
바이트 코드
---------- Java ----------
Compiled from "Parse.java"
public class Parse extends java.lang.Object{
public Parse();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return
LineNumberTable:
line 10: 0
public static void main(java.lang.String[]);
Code:
0: bipush 7
2: istore_1
3: iconst_3
4: istore_2
5: iload_1
6: iinc 1, 1
9: istore_1
10: iinc 2, 1
13: iload_2
14: istore_2
15: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
18: iload_1
19: invokevirtual #3; //Method java/io/PrintStream.println:(I)V
22: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
25: iload_2
26: invokevirtual #3; //Method java/io/PrintStream.println:(I)V
29: return
LineNumberTable:
line 14: 0
line 15: 3
line 16: 5
line 17: 10
line 18: 15
line 19: 22
line 20: 29
}
출력 완료 (0 초 소요) - 정상 종료
해석: 역 컴 파일 후의 명령 을 통 해 알 수 있 듯 이 이 Parse 류 는 두 가지 함 수 를 포함한다. 1. 기본 구조 함수 Public Parse ().public Parse();부모 클래스 java. lang. Object 무 참 구조 함수 호출 0: aload_0 부분 변수 배열 색인 0 위치 에서 Object 대상 의 인용 을 작업 스 택 으로 불 러 옵 니 다. 1: invokespecial #1; //Method java/lang/Object."
2. main 함수 public static void main (java. lang. String []);String 형식 대상 참조 args 부분 변수 배열 색인 0 위치 (대응 변수 args)
int x = 7; 0: bipush 7 글자 액면가 가 7 인 바이트 형 데 이 터 를 조작 스 택 에 눌 러 넣다. 2: istore_1 자바 방법 스 택 에서 스 택 맨 위 를 꺼 내 고 부분 변수 배열 색인 1 위치 (대응 변수 x) 에 저장 합 니 다. int y = 3; 3: iconst_3 글자 액면가 가 3 인 정형 데 이 터 를 조작 수 창고 에 눌 러 넣다 4: istore_2 팝 업 동작 수 스 택 상단 요소, 부분 변수 배열 색인 2 위치 (대응 변수 y) x = x++; 5: iload_1 부분 변수 배열 색인 1 위치 데이터 (대응 변수 x) 를 추출 하여 작업 스 택 에 누 르 십시오. 6: iinc 1, 1 부분 변수 배열 색인 1 위치 데이터 (대응 변수 x) 추가 1 9: istore_1 스 택 상단 요 소 를 팝 업 하고 부분 변수 배열 색인 1 위치 (대응 변수 x) 에 저장 합 니 다. y = ++y; 10: iinc 2, 1 부분 변수 배열 색인 2 위치 데이터 (대응 변수 y) 추가 1 13: iload_2 부분 변수 배열 색인 2 위치 데이터 (대응 변수 y) 를 추출 하여 작업 스 택 에 누 르 십시오. 14: istore_2 스 택 상단 요 소 를 팝 업 하고 부분 변수 배열 색인 2 위치 (대응 변수 y) 에 저장 합 니 다. System.out.println(x); 15: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream; System 류 의 java. io. PrintStream 류 정적 영역 out 을 꺼 내 서 작업 스 택 에 눌 러 넣 습 니 다. 18: iload_1 부분 변수 배열 색인 1 위치 데이터 (대응 변수 x) 를 추출 하여 작업 스 택 에 누 르 십시오. 19: invokevirtual #3; //Method java/io/PrintStream.println:(I)V 작업 스 택 의 대상 은 out 호출 클래스 자바. io. PrintStream 밴드 정형 매개 변 수 를 참조 하 는 일반적인 방법 println () System.out.println(y); System. out. println (x) 과 유사 합 니 다.명령 과정 22: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream; System 류 의 java. io. PrintStream 류 정적 영역 out 을 꺼 내 서 작업 스 택 에 눌 러 넣 습 니 다. 25: iload_2 부분 변수 배열 색인 2 위치 데이터 (대응 변수 y) 를 추출 하여 작업 스 택 에 누 르 십시오. 26: invokevirtual #3; //Method java/io/PrintStream.println:(I)V 작업 스 택 의 대상 은 out 호출 클래스 자바. io. PrintStream 밴드 정형 매개 변 수 를 참조 하 는 일반적인 방법 println () 함수 반환, 반환 형식 void 29: return
\ # 로 시작 한 후 정수 와 상수 탱크 의 데 이 터 를 대응 합 니 다.
부언: 자바 의 모든 클래스 (자바. lang. Object 를 제외 하고) 는 자바. lang. Object 를 직접 또는 간접 적 으로 계승 합 니 다. 즉, 모든 클래스 는 자바. lang. Object 의 직접 또는 간접 적 인 하위 클래스 입 니 다. 자바 가 단일 계승 에 따라 자바. lang. Object 이외 의 클래스 를 계승 했다 면 이러한 종 류 는 자바. lang. Object 류 를 간접 적 으로 계승 합 니 다.그렇지 않 으 면 자바. lang. Object 류 를 기본적으로 계승 합 니 다. 이 결론 은 역 컴 파일 후 명령 Public class Parse extends 자바. lang. Object 에서 볼 수 있 습 니 다.
원문:http://jarg.iteye.com/blog/1005685
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.