类加载的过程——准备。

标签: jvm
5人阅读 评论(0) 收藏 举报
分类:

        准备阶段是正式为类变量分配内存并设置类变量初始值的阶段,这些变量所使用的内存都将在方法区中进行分配。这个阶段中有两个容易产生混淆的概念需要强调一下,首先,这时候进行内存分配的仅包括类变量(被static修饰的变量),而不包括实例变量,实例变量将会在对象实例化随着对象一起分配在Java堆中。其次,这里所说的初始值“通常情况”下是数据类型的零值,假设一个类变量的定义为:

  • private static int value=123;

        那变量value在准备阶段过后的初始值为0而不是123,因为这时候尚未开始任何Java方法,而把value赋值为123的putstatic指令是程序被编译后,存放于类构造器<clinit>()方法之中,所以把value赋值为123的动作将在初始化阶段才会执行。下表列出了Java中所有基本数据类型的零值。

数据类型 零值 数据类型 零值
int 0 boolean false
long 0L float 0.0f
short (short)0 double 0.0d
char '\u0000' reference null
byte (byte)0    

        上面提到,在“通常情况”下初始值是零值,那相对的会有一些“特殊情况”:如果类字段的字段属性表中存在ConstantValue属性,那在准备阶段变量value就会被初始化ConstatnValue属性所制定的值,假设上面类变量value的定义变为:

  • public static final int value=123;

        编译时Javac将会为value生成ConstantValue属性,在准备阶段虚拟机就会根据ConstantValue的设置将value赋值为123。

查看评论

PHP实战之直播工作过程

-
  • 1970年01月01日 08:00

JAVA虚拟机(JVM)——类加载的过程(加载、验证、准备、解析、初始化)

加载“加载”是”类加载”过程的一个阶段。在加载阶段,虚拟机需要完成以下3件事情:1.通过一个类的全限定名来获取定义此类的二进制字节流。 2.将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构...
  • chenge_j
  • chenge_j
  • 2017-05-24 16:39:40
  • 1150

面试官:请你谈谈Java的类加载过程

刚刚走出校门的应届毕业生,如果在去寻求一份Java开发的工作时,你的面试官很有可能一边看着你的简历,一边漫不经心地问你:了解过Java类的加载过程吗? 这个时候你一定要注意了,虽然这是一个老生常...
  • ln152315
  • ln152315
  • 2018-02-01 00:08:28
  • 435

weblogic类加载过程简述

  • 2011年08月29日 17:14
  • 177KB
  • 下载

JVM类生命周期概述:加载时机与加载过程

一个.java文件在编译后会形成相应的一个或多个Class文件,这些Class文件中描述的类的各种信息,最终都需要加载到虚拟机中之后才能被运行和使用。事实上,虚拟机把描述类的数据从Class文件加载到...
  • justloveyou_
  • justloveyou_
  • 2017-05-18 13:48:22
  • 7126

一个小例子解释类加载的过程

初始化和类的加载
  • zerodshei
  • zerodshei
  • 2017-04-15 14:54:35
  • 541

Java中类加载过程和对象创建过程

类加载过程: 1, JVM会先去方法区中找有没有相应类的.class存在。如果有,就直接使用;如果没有,则把相关类的.class加载到方法区 2, 在.class加载到方法区时,会分为两部分加载:先加...
  • u014338577
  • u014338577
  • 2015-11-21 21:47:26
  • 6133

面试之--类加载过程

类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resoluti...
  • qq_29501587
  • qq_29501587
  • 2016-08-04 00:23:46
  • 349

类加载过程ClassLoader分析

参考书:《深入理解java虚拟机》周志明 著 类从加载到内存开始,到卸载出内存为止,生命周期为以下7个部分: 1、加载loading  2、验证verification 3、准备preparation...
  • not_in_mountain
  • not_in_mountain
  • 2017-09-02 22:30:15
  • 83

JAVA中类的加载过程

java中类的加载过程
  • sinat_19650093
  • sinat_19650093
  • 2016-03-20 21:56:51
  • 5684
    个人资料
    持之以恒
    等级:
    访问量: 6万+
    积分: 1871
    排名: 2万+