zoukankan      html  css  js  c++  java
  • 类的生命周期

    1.java虚拟机及程序的生命周期

    java虚拟机的生命周期:java虚拟机进程从启动到终止的过程.

    在以下情况下java虚拟机将结束生命周期

    01.程序正常执行结束;

    02.程序在执行中因为出现异常或错误而异常终止;

    03.执行类System.exit()方法.

    04.由于操作系统出现错误而导致java虚拟机进程终止.

    java程序的生命周期:

    java程序从运行到终止到过程称为程序的生命周期,它和java虚拟机的生命周期是一致的.

    2.类的加载,连接和初始化

    当java程序需要使用某个类时,java虚拟机会确保这个类已经被加载,连接,初始化,其中连接包括:加载,连接,初始化 过程如下图:

    这些步骤必须严格的按照这个顺序执行:

    (1).加载:查找并加载类的二进制数据.

    (2).连接:包括验证.准备和解析类的二进制数据.

    01.验证:确保被加载类的正确性;

    02.准备:为类的静态变量分配内存.并将其初始化为默认值;

    03.解析:把类中的符号引用转换为直接引用.

    (3).初始化.给类的静态变量赋予正确的初始值.

    2.1.类的加载

    类的加载:
    1把.class文件中的二进制数据读取到内存中
    2把它放在运行时数据区的方法区
    3.在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构(类的加载的最终产品便是运行时数据区的堆区的Class对象)

    类的加载的最终产品是位于运行时数据区的堆区的Class对象,Class对象封装了类在方法区内的数据结构,并且向java程序提供类访问类在方法区内的数据的接口

    类的加载器:

    主要任务是完成类的加载

    类的加载器分为两种:

    01,java虚拟机自带的加载器,包括启动类加载器.扩展类加载器和系统类加载器.

    02,用户自定义的类加载器,是java.lang.ClassLoader类的子类的实例,用户可以通过它来定制类的加载方式

    java虚拟机允许类加载器在预料某个类将要被使用的时候预先加载它(即预加载机制),而不需要再等到需要"首次主动使用"时再加载它,预先加载时,如果遇到.class文件缺失或者存在问题,类加载器,必须等到程序首次主动使用该类时才会报错,如果这个类一直不使用,那么类加载器不会报告错误.

    后续...........

  • 相关阅读:
    2021牛客暑期多校训练营5
    二分图知识点温习
    Codeforces Round #735 (Div. 2)
    牛客比赛订正(3,4)
    Harbour.Space Scholarship Contest 2021-2022 (Div. 1 + Div. 2) Editorial题解
    关于球的相关知识
    AtCoder Beginner Contest 210题解
    P7077 [CSP-S2020] 函数调用
    偏序问题学习笔记
    P1606 [USACO07FEB]Lilypad Pond G
  • 原文地址:https://www.cnblogs.com/zqr99/p/7504939.html
Copyright © 2011-2022 走看看