zoukankan      html  css  js  c++  java
  • 类的执行过程

    一.类的加载

    加载器继承关系图

    根加载器 ,底层是操作系统

    扩展加载器, 底层是java代码

    二. 类的连接

    1.验证   确保类的正确性

    .class文件结构检查

    语义检查 比如final修饰的类,不允许有子类

    字节码验证 确保字节码流被JVM可以顺利执行

    二进制兼容的验证

    2.准备   把类中所有由static修饰的内容,开辟空间,然后赋予默认值

      比如说我们Student类中有一个static int age=20;

      会根据数据类型 先开辟空间 int类型会开辟4个字节

      赋初始值age=0;

    3.解析   把类中的符号引用转换成直接引用

      比如说我们Student类中有一个方法 定义如下

      public void sayHello(){

      teacher.sayHello();

      }

      其中teacher.sayHello( ) 直接指向Teacher类中的sayHello( )

      

    三. 类的初始化   给类的静态变量 赋予初始值

      1.类必须完成加载和连接,才能执行初始化

      2.如果类有父类必须先加载和连接父类

      3.如果类中存在初始化语句,那么执行

    类的初始化时机

    1.创建类的实例

      new 

      反射

      克隆

    2.调用类的静态方法

      类初始化了,但是还没有实例

  • 相关阅读:
    2.DI依赖注入
    1.Spring框架入门案例
    5.通过参数注解多个接口参数的用法
    4.update更新和delete删除用法
    3.insert添加用法
    git基础操作
    2.mongodb可视化工具
    12.Scrapy与mongodb交互和设置中间键
    WPF 学习系列汇总
    WPF 4.0 DatePicker 快速录入
  • 原文地址:https://www.cnblogs.com/javaxiaodoufu/p/7614550.html
Copyright © 2011-2022 走看看