zoukankan      html  css  js  c++  java
  • Java性能监控之Java程序执行解析

    大家好,最近接触javassist技术,研究过程中对Java程序执行过程进行了一系列探索,弄清楚了几个盲区(仅针对个人而言),现将经验与大家分享。

    1、编码->.java  通常指写代码的过程,最终输出一个.java源码文件

    2、编译->.class  .java源码经jdk编译后,输出.class二进制文件

    3、启动运行->launcher->main  运行java 命令后,java程序由launcher作为入口,并调用main函数

    4、创建实例->classloader  真正执行我们的程序并需要创建实例时,classloader开始发挥作用,其中有几个函数是native方法实现(findclass等)

    5、获取.class->byte[]  由native方法读取.class文件并将二进制流读取出来

    6、存入栈->perm  在SecurityClassLoad中实现了二进制流存储perm区的操作

    7、对象创建->内存  由native实现完成内存申请、对象创建

    8、执行->输出结果

    粗略总结,一个java程序执行大概需要这几步。

  • 相关阅读:
    基础编程练习题第一波
    TYVJ 1541 八数码
    NOIP 2014 寻找道路
    NOIP2014 解方程
    POJ 3213 矩阵乘法(优化)
    POJ 1523 Tarjan求割点
    POJ 3237 树链剖分+线段树
    SPOJ 375 树链剖分
    NOIP 2012 T2 国王游戏 (贪心+高精)
    POJ 1364 差分约束
  • 原文地址:https://www.cnblogs.com/orionhp/p/6362334.html
Copyright © 2011-2022 走看看