我是靠谱客的博主 聪明犀牛,最近开发中收集的这篇文章主要介绍[ java ] 变量的初始化问题!,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

类变量(类静态成员): 类被加载时产生;它的生存期是类的生存期;自动初始化(类被加载)
成员变量(类成员):  在使用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);
}
}


 

最后

以上就是聪明犀牛为你收集整理的[ java ] 变量的初始化问题!的全部内容,希望文章能够帮你解决[ java ] 变量的初始化问题!所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部