下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

详解Java代码的运行

作者:课课家教育     来源: http://www.kokojia.com点击数:938发布时间: 2016-02-18 16:15:13

标签: java运行java代码编译java代码执行

大神带你学编程,欢迎选课

  1、java代码执行流程

Java代码的运行流畅详解_java运行_课课家

  第一步:*.java-->*.class(编译期)

  第二步:从*.class文件将其中的内容加载到内存(类加载)(运行期)

  第三步:执行代码(运行期)

  2、代码编译

  javac命令将源码文件编译为*.class文件。

  后边将介绍:

  javac将*.java编译成*.class文件的过程

  class文件的文件格式,以及其存储的内容

  3、类加载

  主要是指将*.class文件加载到JVM,并形成Class对象的机制,之后就可以对Class对象实例化并调用了。

  特点:

  类加载机制可以在运行时动态加载外部类

  后边将介绍:

  类加载的过程

  类加载的双亲委托机制

  类加载器的层次关系及源码

  4、执行代码

  两种执行方式:

  解释执行(运行期解释字节码并执行)

  速度慢,效率低

  但是要比编译为机器码执行省内存

  编译为机器码执行(将字节码编译为机器码并执行,这个编译过程发生在运行期,称为JIT编译),下面是两种模式

  client(即C1):只做少量性能开销比高的优化,占用内存少,适用于桌面程序,主要的优化包括:

  方法内联

  去虚拟化

  冗余消除

  server(即C2):进行了大量优化,占用内存多,适用于服务端程序。会收集大量的运行时信息。

  逃逸分析:根据运行状况来判断方法中的变量是否会被外部读取,若不会,此变量是逃逸的。基于此,C2在编译时会做:

  标量替换

  栈上分配

  同步削除

  32为机器默认选择C1,可在启动时添加-client或-server来指定,64位机器若CPU>2且物理内存>2G则默认为C2,否则为C1

  Sun JDk执行代码的机制:对在执行过程中执行频率高的代码进行编译,对执行频率不高的代码继续解释执行

  后边将介绍:

  Sun JDK执行代码的过程

  C1以及C2执行的一些优化

  编译执行与解释执行的使用的衡量点

赞(27)
踩(1)
分享到:
华为认证网络工程师 HCIE直播课视频教程