java代码从初始化到具象执行
来源:互联网 发布:淘宝店办理营业执照 编辑:程序博客网 时间:2024/05/17 20:26
好吧,其实很多看代码的方法是书上没有的,看两位老大的讨论技术细节,我记下了方法。
方法
vim Test.java
public final class Test{ public static final String s1 = "hello"; public static void main(String[] args){ System.out.println(s1); }}
javac Test.java
javap -c -v Test.class
Classfile /Users/yeshen/Documents/yeshen/temp/Test.class Last modified Aug 1, 2017; size 465 bytes MD5 checksum 7f091d406dbf33427c3f71e331e14ca2 Compiled from "Test.java"public final class Test minor version: 0 major version: 52 flags: ACC_PUBLIC, ACC_FINAL, ACC_SUPERConstant pool: #1 = Methodref #6.#18 // java/lang/Object."<init>":()V #2 = Fieldref #19.#20 // java/lang/System.out:Ljava/io/PrintStream; #3 = Class #21 // Test #4 = String #22 // hello #5 = Methodref #23.#24 // java/io/PrintStream.println:(Ljava/lang/String;)V #6 = Class #25 // java/lang/Object #7 = Utf8 s1 #8 = Utf8 Ljava/lang/String; #9 = Utf8 ConstantValue #10 = Utf8 <init> #11 = Utf8 ()V #12 = Utf8 Code #13 = Utf8 LineNumberTable #14 = Utf8 main #15 = Utf8 ([Ljava/lang/String;)V #16 = Utf8 SourceFile #17 = Utf8 Test.java #18 = NameAndType #10:#11 // "<init>":()V #19 = Class #26 // java/lang/System #20 = NameAndType #27:#28 // out:Ljava/io/PrintStream; #21 = Utf8 Test #22 = Utf8 hello #23 = Class #29 // java/io/PrintStream #24 = NameAndType #30:#31 // println:(Ljava/lang/String;)V #25 = Utf8 java/lang/Object #26 = Utf8 java/lang/System #27 = Utf8 out #28 = Utf8 Ljava/io/PrintStream; #29 = Utf8 java/io/PrintStream #30 = Utf8 println #31 = Utf8 (Ljava/lang/String;)V{ public static final java.lang.String s1; descriptor: Ljava/lang/String; flags: ACC_PUBLIC, ACC_STATIC, ACC_FINAL ConstantValue: String hello public Test(); descriptor: ()V flags: ACC_PUBLIC Code: stack=1, locals=1, args_size=1 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return LineNumberTable: line 1: 0 public static void main(java.lang.String[]); descriptor: ([Ljava/lang/String;)V flags: ACC_PUBLIC, ACC_STATIC Code: stack=2, locals=1, args_size=1 0: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream; 3: ldc #4 // String hello 5: invokevirtual #5 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 8: return LineNumberTable: line 4: 0 line 5: 8}SourceFile: "Test.java"
run
java Test
结论:
这样弄了之后,代码从初始化到具象执行的过程都透明可见了。
阅读全文
0 0
- java代码从初始化到具象执行
- C代码从初始化到汇编执行
- Java代码从编译到执行
- Java代码从编译到执行
- 用户画像的方法与案例——从具象到抽象
- Java 初始化顺序,代码执行顺序
- 从Java类初始化,来看代码优化
- 从赋值到初始化
- 从赋值到初始化
- 从 Java 代码到 Java 堆
- 从 Java 代码到 Java 堆
- 从 Java 代码到 Java 堆
- 从 Java 代码到 Java 堆
- 从 Java 代码到 Java 堆
- 从 Java 代码到 Java 堆
- 代码演示java执行步骤(初始化)1
- 程序是怎么从代码到执行的
- C语言 从编写代码到得到执行结果步骤
- Log4j和Log4j2的区别
- 8-1
- 2017 多校训练第三场 HDU 6060 RXD and dividing
- C
- HDU 6058 Kanade's sum [链表]
- java代码从初始化到具象执行
- 手写选择题识别-生成编译opencv项目.so文件-失败
- ASP.NET网站怎么发布 Web项目程序怎么发布部署
- 《Android开发艺术探索》读书笔记-第三章 View的事件体系
- Uva
- 杭电acm 1302 蜗牛爬井
- Add to List 67. Add Binary
- python: extend (扩展) 与 append (追加) 的区别
- Loadlibrary:将Windows的动态链接库移植到Linux下