zoukankan      html  css  js  c++  java
  • Java中类变量和实例变量的初始化

    1. 类变量和实例变量

    类变量即类成员变量中的静态变量,它们可以通过类名来直接访问。

    实例变量是类成员变量中的非静态变量,只有在实例化对象之后通过对象来访问。

    2. 空间分配的时间不同

    类变量是在类加载后的准备阶段在方法区分配内存的。

    实例变量是在类实例化为对象的时候在堆中分配内存。

    3. 初始化

    类变量在准备阶段会进行默认初始化,当某些条件满足时候会触发类的初始化。详见《深入理解java虚拟机》的类加载机制。

    实例变量在空间分配内存后,虚拟机会将所分配到的内存空间都初始化为零值(不包括对象头)。这一步操作保证了对象的实例字段在java代码中可以不赋初值就可以直接访问,程序能访问到这些字段的数据类型所对应的零值。

    对于局部变量,只能显示地进行初始化,否则不能访问该变量的值。

    4. final关键字

    当final关键字作用于类变量时,必须有显示的初始化。在声名对象的语句中初始化,或者在静态代码块中进行初始化。

    当final关键字作用于实例变量时,也必须进行显示的初始化。在声名对象的语句中初始化,或者在构造代码块中进行初始化,或者在所有的构造函数中进行初始化。

    final修饰的变量只能初始化化一次,因此该变量已经在一种方式中进行过初始化,则不能在另一种方式再进行一次初始化。

  • 相关阅读:
    Win7 安装 IIS 7.5 及部署 .NET 程序到 IIS 的内容杂记
    乐嘉,你快回来
    AMD将要嫁他人?
    高精度运算(运算符重载)
    魔数卡牌
    C语言"#","#@"和"##"在宏定义中的使用技巧
    CentOS7下安装FTP服务
    Linux下FTP的安装和登陆
    怎么让FOXMAIL关了以后在右下角自动收取邮件
    在CentOS7上安装ftp服务器用于保存服务端上传的图片。
  • 原文地址:https://www.cnblogs.com/liujinhong/p/6434141.html
Copyright © 2011-2022 走看看