zoukankan      html  css  js  c++  java
  • 初始化String,System,OutOfMemoryError

    对于String, System而言,其初始化过程和 Thread一致.而对于OutOfMemoryError而言,其继承结构如下:


    因此对于OutOfMemoryError,会首先将状态改为4,然后尝试初始化VirtualMachineError,同样的VirtualMachineError将状态改为4,然后初始化Error,然后初始化Throwable.对于Throwable而言,其父类为Object已经为CLASS_READY,因此在runClinit方法中,直接将状态改为CLASS_READY,然后弹栈.接下来是Error,将状态改为CLASS_READY,然后弹栈.然后是VirtualMachineError,将状态改为CLASS_READY,然后弹栈.最终将OutOfMemoryError状态改为CLASS_READY,然后弹栈.则此时的栈的情况如图所示:

    其实对于System而言,由于其内部有个静态字段.如下:

    public final static PrintStream out = getOutput();

    private static PrintStream getOutput(http://www.amjmh.com/v/BIBRGZ_558768/) {
    return new PrintStream(new com.sun.cldc.io.ConsoleOutputStream());
    }
    1
    2
    3
    4
    5
    因此,javac会生成一个方法.进行out字段的初始化.不过这里我就不展开了.
    ————————————————

  • 相关阅读:
    sqoop
    HBase API操作
    Hbase 01-安装| shell操作
    Azkaban
    Kafka-API
    Oozie
    Kafka Manager| KafkaMonitor
    kafka工作流程| 命令行操作
    CDH| HUE的自动化安装部署
    Impala
  • 原文地址:https://www.cnblogs.com/ly570/p/11384658.html
Copyright © 2011-2022 走看看