zoukankan      html  css  js  c++  java
  • 对象的创建

    1. 创建对象

      1. 像Spring框架中,类一般都是单例,在创建之前会判断是否创建过。未创建,或者作用域非单例,则会新建对象。
    2. class格式的二进制字节流

      1. class 规定的是字节的格式。
      2. 可以从文件,网络,数据库,其他文件中获取。
    3. 需要检测类是否加载 运行时加载

      1. 如何判断的?当前类加载器-> 双亲委派模型
      2. 根据类加载器判断class 是否被加载
      3. 两个类是否相同
        1. 类的加载器相同
        2. 类的全限定名一致
    4. 如何加载,通常类加载器

      1. 双亲委派模型,为了保证类相同、不重复加载
        1. 先检查自己是否加载过。没有,下一步
        2. 自己先不加载,委托组合的加载类加载。
        3. 加载不了,才自己去加载
        4. 最顶端是 Boostrap类加载器--只识别某些设定的class
      2. 模型的破坏
        1. 模型后提出的,so
        2. 越是基础的类由越上层的加载器加载,如果基础类需要回调用户的代码,bootsrap 及时扫描到也不会加载,只好委托子类加载器(线程上下文类加载器)加载。
          1. SPI,JDBC
        3. OSGI介绍下。
          1. 模块化热部署。每个模块都有自己的类加载器
          2. 特定类交给父类加载器,其余的要么自己加载,要么交给平级的类加载器
    5. 加载class

      1. 验证
      2. 准备 - 分配方法区内存 常量池,设置类变量的零值
      3. 解析 加载涉及到的类-伴随着验证
      4. 类的初始化,初始化类变量:static 模块等
      5. 可被虚拟机直接使用额Java类型
    6. 分配内存 - 堆对象内存

    7. 设置零值

    8. 设定对象头、类信息、GC年龄段

    9. 初始化实例变量等。

  • 相关阅读:
    10.RobotFramework: 获取当前时间戳
    9.接口自动化-自定义关键字、接口设计规范
    8.接口自动化-RequestLibrary库的介绍与示例讲解
    7.接口自动化-环境常用库搭建
    6.数据库操作(DatabaseLibrary)与常见问题
    5.远程服务器操作(SSHLibrary)
    概率密度与概率分布函数
    Linux安装包类型
    随机变量与随机过程
    hosts文件
  • 原文地址:https://www.cnblogs.com/liuguobin/p/8979337.html
Copyright © 2011-2022 走看看