• 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

  • 相关阅读:
    如何在phpstorm中安装xdebug调试工具
    php判断远程图片或文件是否存在
    在centos6.7中lnmp环境下安装swoole插件和pthreads插件
    linux中常用的命令
    PHP获取远程文件的几种方式
    TextView实现长按复制功能
    android 字体大小自适应
    Android 相机,视频录制
    转 数据存储方式
    转 String,StringBuffer与StringBuilder的区别??
  • 原文地址:https://www.cnblogs.com/huilei/p/10598752.html
Copyright © 2020-2023  润新知