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的时候那么就会出现这个错误

  • 相关阅读:
    PHP教程:PHPUnit学习笔记(三)测试方法进阶
    PHP教程:PHPUnit学习笔记(二)PHPUnit基本用法
    PHP教程:PHPUnit学习笔记(一)PHPUnit介绍及安装
    phpunit框架安装
    防注入(url)
    ssh 密钥详解
    JS判断登陆端是PC还是手机
    字节换算器
    gif 图片制作和拆解
    让你的网站秒开 为IIS启用“内容过期”
  • 原文地址:https://www.cnblogs.com/wfq9330/p/9438743.html
Copyright © 2011-2022 走看看