• java核心技术 笔记


    一 、 总览

    1. 类加载机制:jdk内嵌的class_loader有哪些,类加载过程。--后面需要补充

    2. 垃圾收集基本原理,常见的垃圾收集器,各自适用的场景。--后面需要补充

    3. 运行时动态编译,解释执行,JIT执行热点代码等知识点

         hotspot jvm目前是解释与编译同在的混合模式,有c1 c2两种模式,c1适用于对启动速度要求高的系统,门限是1500次;c2适用于优化那些运行时间较长的server系统,采用分层编译。-Xint:表示只进行解释执行,不对代码进行编译。-Xcomp:不进行解释执行,启动会比较慢。

    进行热点代码编译的设计,是因为绝大多数的程序都表现为“小部分的热点耗费了大多数的资源”。HotSpot采用了惰性评估(Lazy Evaluation)的做法,根据二八定律,消耗大部分系统资源的只有那一小部分的代码(热点代码),而这也就是JIT所需要编译的部分。

    JDK 9引入了一种新的编译模式AOT(Ahead of Time Compilation),它是直接将字节码编译成机器码,这样就避免了JIT预热等各方面的开销。JDK支持分层编译和AOT协作使用。
    注:JIT为方法级,它会缓存编译过的字节码在CodeCache中,而不需要被重复解释。

    二、Exception 和 Error

    典型例子:

    加载时从外存储器找不到需要的class就出现ClassNotFoundException
    连接时从内存找不到需要的class就出现NoClassDefFoundError

    ClassNotFoundException发生在装入阶段。当应用程序试图通过类的字符串名称,使用常规的三种方法装入类,但却找不到指定名称的类定义时就抛出该异常。
    NoClassDefFoundError: 当目前执行的类已经编译,但是找不到它的定义时。也就是说你如果编译了一个类B,在类A中调用,编译完成以后,你又删除掉B,运行A的时候那么就会出现这个错误

  • 相关阅读:
    [BS] 小知识点总结-02
    [BS] 小知识点总结-03
    [BS] 小知识点总结-01
    [BS-12] JSON的基础知识--百科
    [BS-11] 关于RGB/ARGB颜色相关知识
    Mac自定义隐藏或显示文件的快捷键
    iOS开发环境C语言基础
    Objective -C Memory Management 内存管理 第一部分
    Objective-C Foundation 框架 Example :Looking for Files 查找文件
    Objective
  • 原文地址:https://www.cnblogs.com/wfq9330/p/9438743.html
Copyright © 2020-2023  润新知