长沙java培训
达内长沙芙蓉路中心

18487146383

热门课程

达内长沙java培训详解:java程序运行

  • 时间:2016-09-21
  • 发布:长沙Java培训
  • 来源:码农网

作为一名程序猿,我们每天都在写Code,但你真的了解它的生命周期么?今天就来简单聊下它的生命历程,说起一段Java Code,从出生到game over大体分这么几步:编译、类加载、运行、GC。

经过了前面达内长沙java培训所说的编译和类加载两个阶段之后,程序开始正常跑起来了,我们都知道程序执行过程涉及到了各种指令的计算操作,程序如何执行的呢?这地方就会使用到达内长沙java培训开头谈到的后端编译器(JIT即时编译器)+解释器这种搭配使用的混合模式(HotSpot虚拟机默认采用了解释器与一个编译器),字节码执行引擎则负责着这类各种程序计算操作的任务,它在执行Java代码的时候有可能会有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,也可能两者兼备。

栈帧是用于支持虚拟机进行方法调用和执行的数据结构,具体的压栈弹栈各种指令计算的思路涉及到了一个经典的算法——Dijkstra算法,至于如何执行有兴趣的自己查资料吧这地方不会过多深入。

运行期的优化问题在这个阶段同样重要,而JVM设计团队则把对性能的优化集中到了这个阶段,这样可以让那些不是由Javac产生的Class文件同样享受到编译器优化带来的好处,至于具体的优化技术有哪些呢?有很多,达内长沙java培训这里简单提几个具有代表性的优化技术:公共子表达式消除、数组边界检查消除、方法内联、逃逸分析等等。

上一篇:达内长沙java培训详解:java程序类加载(下)
下一篇:达内长沙java培训详解:java程序GC

达内长沙Java培训教你阅读GC日志

spring注入配置文件属性到java类

Java中Vector和ArrayList的区别

达内长沙Java培训详解volatile关键字

选择城市和中心
贵州省

广西省

海南省