zoukankan      html  css  js  c++  java
  • java vm (二) 之 虚拟机启动对类的操作

      虚拟机在启动中对类的操作

    1. 虚拟机加载类(classloader克拉斯楼的),类进行处理以后是字节码,虚拟机认识就可以做下面的事情了。从硬盘到内存的过程
    2. 链接
      1. 对类进行验证,类的头部用两个字节保存了,这个信息,详情找个专业的文档链接放到这里。
      2. 为类分配内存,给对应的变量附言默认值 int 给他 个0  Integer 给他个null……
      3. 将特殊的字符进行解析,应该是跟Spring 对 @autowrite 的解析类似,有自己的套路,(找个合适的例子放到这里)
    3. 初始化变量赋予正确的值 比热 private String name="天之云" ,先做2.2,分配空间,赋予默认值null 到这里了给他“天之云”。

     类的初始化在何时发生呢?

      类(接口)在被java程序“首次主动调用”的时候才会被初始化。

       说的多好!

            首次~~主动~~调用

     那么如何调用称呼其为主动调用

    1. 类被实例化的时候 Object object=new Object();
    2. 访问某个类或接口的静态变量,或者对该静态变量赋值 object.name=b;(这里本尊有点疑问必须是静态的吗?)
    3. 调用类的静态方法 object.exit();
    4. 反射class.forName("com.william.test")
    5. 初始化一个类的子类。 Object a=new String();
    6. java虚拟机启动时被标明为启动类的类(Java Test)

      以上可以证明写了一个类但是没有主动调用,那么不必担心里面的逻辑了,因为程序走不到哪里。

  • 相关阅读:
    记Git报错-Everything up-to-date
    开发相关的绝赞网站和框架
    记Git报错-refusing to merge unrelated histories
    Nodejs和npm入门使用
    【转】什么是JavaScript
    CSS学习摘要-定位实例
    golang 文件服务器
    golang postgresql CRUD
    golang sqlite3 CRUD
    psql: 致命错误: 对用户"user1"的对等认证失败
  • 原文地址:https://www.cnblogs.com/tianzhiyun/p/6349833.html
Copyright © 2011-2022 走看看