zoukankan      html  css  js  c++  java
  • java核心36

    1 Java平台

     

    Java采用的是解释和编译混合的模式。它首先通过javac将源码编译成字节码文件class.然后在运行的时候通过解释器或者JIT将字节码转换成最终的机器码。
    只是用解释器的缺点:抛弃了JIT可能带来的性能优势。如果代码没有被JIT编译的话,再次运行时需要重复解析。
    只用JIT的缺点:
    需要将全部的代码编译成本地机器码。要花更多的时间,JVM启动会变慢非常多;
    增加可执行代码的长度(字节码比JIT编译后的机器码小很多),这将导致页面调度,从而降低程序的速度。
    有些JIT编译器的优化方式,比如分支预测,如果不进行profiling,往往并不能进行有效优化。
    因此,HotSpot采用了惰性评估(Lazy Evaluation)的做法,根据二八定律,消耗大部分系统资源的只有那一小部分的代码(热点代码),而这也就是JIT所需要编译的部分。JVM会根据代码每次被执行的情况收集信息并相应地做出一些优化,因此执行的次数越多,它的速度就越快。
    JDK 9引入了一种新的编译模式AOT(Ahead of Time Compilation),它是直接将字节码编译成机器码,这样就避免了JIT预热等各方面的开销。JDK支持分层编译和AOT协作使用。

    2 exception 和 error

     

    3 final finally finalize

    4 引用: 强 软 弱 虚

    5 string stringbuilder stringbuffer

  • 相关阅读:
    关于javascript获取页面高度宽度
    regexp_substr在oracle9i的替换方案
    iOS-数据存储
    iOS-导入XMPP框架
    iOS-WWDC
    iOS-在Xcode中使用Git进行源码版本控制(转)
    iOS-AFN
    iOS-网络基础
    iOS-UIDynamic
    iOS-动画
  • 原文地址:https://www.cnblogs.com/huilei/p/10598752.html
Copyright © 2011-2022 走看看