zoukankan      html  css  js  c++  java
  • 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的时候那么就会出现这个错误

  • 相关阅读:
    LeetCode Best Time to Buy and Sell Stock
    LeetCode Scramble String
    LeetCode Search in Rotated Sorted Array II
    LeetCode Gas Station
    LeetCode Insertion Sort List
    LeetCode Maximal Rectangle
    Oracle procedure
    浏览器下载代码
    Shell check IP
    KVM- 存储池配置
  • 原文地址:https://www.cnblogs.com/wfq9330/p/9438743.html
Copyright © 2011-2022 走看看