你定义的i是临时变量这种临时變量是不会初始化的,只有类的成员变量才会被初始化比如
然后你创建一个test对象,new test()那么这个对象的属性i就会被默认初始化为0。
你对这個回答的评价是
除非.你把I定义成TEST类的属性..才可以.....
定义成属性时.INT形的默认值 是0
你对这个回答的评价是?
int 全局变量会初始化为0局部变量未萣义。
你对这个回答的评价是
你对这个回答的评价是?
你定义的i是临时变量这种临时變量是不会初始化的,只有类的成员变量才会被初始化比如
然后你创建一个test对象,new test()那么这个对象的属性i就会被默认初始化为0。
你对这個回答的评价是
除非.你把I定义成TEST类的属性..才可以.....
定义成属性时.INT形的默认值 是0
你对这个回答的评价是?
int 全局变量会初始化为0局部变量未萣义。
你对这个回答的评价是
你对这个回答的评价是?
首先先看一段最普遍的JAVA代码:
这裏先猜下控制台输出结果是什么?
OK, 或许你已经猜到下面了结果了,那么你还是熟悉Java的
如果你不明白是为什么会输出上面的结果,那么我来告诉伱。
Java静态变量初始化遵循以下规则:
看了这个就会明白,原来Test.a的值变化了三次
明白了这个,请再看下面嘚代码
这个你还能猜到输出结果吗? 我是在一边测试一边写的,所以我没猜出来.哈哈
这个结果你没猜到吧,哈哈.
要一句一句的讲解程序执行结果,还是要很到的篇幅的.这里就直接写出Java静态变量初始化遵循的规则了。
第一段的规则依然有效只是不健全。
static数据的初始化加上static限萣的字段是所谓的类字段,也就是说这个字段的拥有者不是对象而是类无论创建多少对象,static数据都只有一份
类内总是先初始化static字段,再初始化一般字段接着初始化构造器。但是如果不创建这个类的对象那这个对象是不会进行初始化的,并且只执行一次
显示的静態初始化(也就是静态块)把多个初始化语句包在一个static花括号里,叫做静态块其实就是把多个static合在一起写了,本质是一样的只有首次創建对象或者首次访问类的字段时才会执行,而且仅仅一次
非静态实例初始化这个没什么好讲的,就是普通初始化按顺序执行,可以哆次执行