1/31JVM虚拟机 类加载

  1. loading加载

     

     JAVA。lang包底下的reflect。反编译从应用破解源码,盗版!

  2. 加载已经在内存中有大的class文件

     验证

     准备阶段静态变量都初始化为0,常量都已经初始化好

  3. 符号引用  一个字节码文件不可能全装下各种需要用到的类,而是用一个符号代指,解析就是把符号引用变成指针或偏移量

     

  4. 初始化

     方法中自动有 

     

     按先后顺序初始化,有一个常量

  5. 一个特殊,可以先定义声明后改变值

     初始化之前已经有准备阶段

  6. 这是类的构造器方法 如果没有类变量,就不会自动生成

     类变量的加载只加载一次

  7. 类加载器的分类

     

     

     

     

  8. 核心类库 由引导类加载

     

     

     

     

  9. 自定义类加载器  隔离各个容器

     

     

  10. 双亲委派机制

     引导类 Java底下的包都归它管,比如Java.lang

     为了保护

     知道报错原因,因为核心String类库没有main方法

  11.  

    双亲委派机制的优势

     

     

     

  12.  

    沙箱安全机制 

     放在你用引导类加载器加载自己的恶意攻击

     

     

     动态链接需要这个信息

  13.  

    类的被动使用

     主动?被动使用的区别就在于clinit()方法会不会使用

  14.  

    运行时数据区

     

     

  15.  

    原来Java线程和本地线程是一一印射的

     

     守护线程

     

     

     

  16. 程序计数器  北京烤鸭的钩子,勾住代码  软件层面是一种模拟

     既没有GC也没有OOM

     

     

     

  17.  

    虚拟机栈

     

     

     

     

  18. 为什么不需要GC,只能进站出站,没有复杂的算法

     

     

     

     

     

     

     

  19. 局部变量表

     

     

     

     

     

     

     

     字节码行长度

     15是idea中的行号,一一对应,8是字节码文件的行号

     start PC+length是作用域范围,16就是代码范围长度

  20. 槽slot

     

     

     

     引用类型占据一个slot,普通方法第一个就是this

     

     

     

     

  21. 操作数栈 结合执行引擎

     

     

     

  22. 栈顶缓存

     

     

     

  23. 动态链接

     

     

     常量池里啥都有 将符号引用转换为直接地址引用

     

     为什么不直接放

     因为Java全是引用

     

     标志位Final就不能被重写,就确定了

  24. 非虚方法和虚函数

     

posted @   SunShine789  阅读(2)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示