• 变量的初始化问题! .


    类变量(类静态成员): 类被加载时产生;它的生存期是类的生存期;自动初始化(类被加载)
    成员变量(类成员):  在使用new创建该类实例时产生;它的生存期与该类实例对象的生存期相同;
    
    自动初始化(构造方法被调用)
    局部变量(类的方法中的变量):  该方法被调用时产生; 在该方法退出后结束; 必须显式初始化
    
    1 方法中的变量,不会被自动初始化。比如main方法中的变量index,定义如int index;   它不会被自动初始化。
    
    2 当用new定义一些变量,会自动初始化,如 int [] d = new int[100];  它自动初始化为0。
    各数据类型的数组自动初始值如下:
    byte  0
    short  0
    int  0
    long  0l
    float  0.0f
    double  0.0d
    char  /u0000    即数值0,而非字符0,因为它是0~~65535的序列。字符0位置在48上,即/u0030
    boolean  false
    reference null 如String
    
    3 类成员如果没有被定义会自动获取一个初始值。首先运行声明的类成员,如果有定义,则取定义值,随后调用构造函数,如果构造函数中对已定义变量重赋值,则取重赋的值。
    
    4 Stack类型自动初始化为空。空显示为[],而不是null。
    
    举例:
    class Test
    {
    static int myArg ;
    public static void main(String[] args)
    {
      int myArg; //如果此行没有写,即可通过编译了。
      System.out.pringln(myArg);
    }
    }
    
    通不过编译。
    
    5 数组定义
    可以如下定义
    int iArray[] = null;
    
    6 静态块和类成员定义的优先级
    
    //仍模糊,静态块,或代码块什么时候调用,是在类生成初么?那应该要比成员变量要早,因此,首先int i = 10;其次 i = 20;
    
    如下:
    public class Test
    {
    int i = 20;
    
    static
    {
      int i = 10;
    }
    
    public static void main(String [] args)
    {
      Test a = new Test();
      System.out.println(a.i);
    }
    }


     

  • 相关阅读:
    CircleImageView 圆形图片头像实现
    使用VisualStudio开发php的图文设置方法[xyytit]
    使用VisualSVN Server搭建SVN服务器[xyytit]
    比较全的JavaScript倒计时脚本[xyytit]
    jQuery对象转换为DOM对象(转)
    SQL Server多条件查询的实现
    GridView控件中的一些常见问题
    GridView中如何实现自定义时间货币等字符串格式?
    js关闭当前页面(窗口)的几种方式总结(转)
    Sql求和异常——对象不能从 DBNull 转换为其他类型
  • 原文地址:https://www.cnblogs.com/yangzhi/p/3576634.html
Copyright © 2020-2023  润新知