• 类的生命周期


    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文件缺失或者存在问题,类加载器,必须等到程序首次主动使用该类时才会报错,如果这个类一直不使用,那么类加载器不会报告错误.

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

  • 相关阅读:
    python OptionParser的用法
    Python SMTP发送邮件
    python爬虫时,解决编码方式问题的万能钥匙(uicode,utf8,gbk......)
    logging的基本使用
    基本爬虫
    python socket 基本使用
    python os.walk处理树状目录结构的文件
    关于算法和方案——扯一会儿
    <五>强制关机惹的祸——redhat重装及注册订阅的艰难之路
    018 求完数(初识数组指针)
  • 原文地址:https://www.cnblogs.com/zqr99/p/7504939.html
Copyright © 2020-2023  润新知