JAVA当中变量什么时候需要初始化?

转载 2013年12月05日 21:01:51

转自:http://blog.163.com/shuzhen_an/blog/static/119399304200962334211324/

1. 对于类的成员变量,不管程序有没有显式的进行初始化,Java虚拟机都会先自动给它初始化为默认值。 

 默认值如下:
             Boolean      false
             Char           '\u0000'(null)
             byte            (byte)0
             short           (short)0
             int               0
             long            0L
             float            0.0f
             double        0.0d
2. 局部变量声明之后,Java虚拟机就不会自动给它初始化为默认值,因此局部变量的使用必须先经过显式的初始化。
      但是需要声明的是:对于只负责接收一个表达式的值的局部变量可以不初始化,参与运算和直接输出等其它情况的局部变量需要初始化。

通过下面这个测试可以看到JVM对哪些数据初始化,哪写数据不初始化:

public class TestStatic {
 static int x; //类的成员变量,JVM负责初始化
 static int method()
 {
    int y=0;  //此处必须自己初始化,它不属于类成员变量,是个method的局部变量,JVM不负责初始化

    return y;
 }
 public static void main(String[] args) {
     TestStatic as=new TestStatic();
     int z=0;  //此处必须自己初始化,它不属于类成员变量,是个主函数里的局部变量,JVM不负责初始化
     int aa=3; //此处aa参与了运算,所以必须初始化
     aa=aa+2;
     int a=1,b=2,max; //max只是负责接收表达式的值,不需要初始化
     max=a>b?2:1; 
     System.out.println(max); //1
     System.out.println(aa); //5
     System.out.println("z="+z); //z=0
     System.out.println("x="+as.x); //x=0  

    System.out.println("y="+as.method()); //y=0
 }

总结为一句话便是:
 类里定义的数据成员称为属性,属性可不赋初值,若不赋初值则JAVA会按上表为其添加默认值;方法里定义的数据成员称为变量,变量在参与运算之前必须赋初值。

java中变量什么时候需要初始化

1. 对于类的成员变量,不管程序有没有显式的进行初始化,加载时Java虚拟机都会先自动给它初始化为默认值。   基本数据类型默认值如下:              Boolean      fa...
  • u010698072
  • u010698072
  • 2016年06月30日 17:28
  • 1501

java类中的静态变量是什么时候初始化的

我们知道一个类(class)要被使用必须经过装载,连接,初始化这样的过程。下面先对这三阶段做一个简单的描述,之后会结合一个简单的例子来说明java中类的初始化过程。 在装载阶段,类装载器(Boo...
  • u010585120
  • u010585120
  • 2016年11月09日 10:24
  • 3449

Java中静态(static)成员何时才会初始化

先谈static static方法就是没有this的方法。在static方法的内部不能调用非静态方法,反过来倒是可以的,而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这...
  • qJay_Dev
  • qJay_Dev
  • 2016年04月24日 01:00
  • 7729

java成员变量在什么时候赋值的?

作者:RednaxelaFX 链接:https://www.zhihu.com/question/36643366/answer/68519999 来源:知乎 著作权归作者所有,转载请联系作者获...
  • lr222584
  • lr222584
  • 2017年01月18日 16:04
  • 646

Java变量的初始化问题探究

对于java的变量,我们知道有成员变量和局部变量。 关于他们的初始化,基本上所有书上都会写。成员变量,java会帮助你初始化,局部变量,则需要程序员自己初始化。 对于类的成员变量。...
  • free4294
  • free4294
  • 2014年08月07日 21:02
  • 3571

Java类的初始化、变量的初始化

本文简单演示Java类的初始化、变量的初始化顺序,扎实Java 基础,编写高效的code哦知识点 Java常量,final 修饰,值被设定后不能再被修改 静态变量里,static 修饰,顾名思义,无须...
  • CSDNno
  • CSDNno
  • 2016年09月10日 17:06
  • 1830

Java类什么时候开始初始化

Java类什么时候开始初始化
  • luoxianfeng89
  • luoxianfeng89
  • 2015年10月09日 22:44
  • 996

java中关于static 类型的变量声明与初始化的问题

今天在聊天室看到这样一个问题,刚是感觉头脑一下 懵住了,现在简单整理一下,希望能对像我一样的广大菜鸟们解一份疑、答一份惑! 【问题】static int i = 1;中变量i被赋值几次?...
  • wangsf789
  • wangsf789
  • 2015年01月15日 20:25
  • 2030

Java 变量到底要如何初始化

本问题讨论变量的初始化,所以先来看一下Java中有哪些种类的变量。 类的属性,或者叫值域方法里的局部变量方法的参数 对于第一种变量,Java虚拟机会自动进行初始化。如果给出了初始值,则初始...
  • softn
  • softn
  • 2016年05月31日 06:32
  • 521

java中成员变量和局部变量的初始化

java中成员变量和局部变量的初始化 成员变量的初始化 在java中,成员变量存在于类之内,方法和代码块之外。 class A{ 修饰符  数据类型 成员变量名; 方法(){} }这类变量在创建时如...
  • qq_20051151
  • qq_20051151
  • 2016年07月02日 09:40
  • 4047
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA当中变量什么时候需要初始化?
举报原因:
原因补充:

(最多只允许输入30个字)