东莞企业网站建设分析静态数据的初始化顺序
东莞企业网站建设分析对类而言,初始化的顺序是由变量在类的定义里面的顺序所决定的。变量的定义可能会分散在类定义的各个地方,并且与方法的定义相互交错,但是变量的初始化会先于任何方法,甚至是构造函数的调用。
我们把对象的定义分散到各个地方,你可以从程序的输出中看到,变量的reference被初始化了两次:一次是在构造函数调用之前。这种做法的效率好像不怎么样,但是却能保证进行适当的初始化,如果你还重载了一个不对变量进行初始化的构造函数,而定义变量的时候又没有提供缺省的初始化值,那又会怎样呢?
对static数据来说,故事是相同的:如果它是一个primitive,而你又没有初始化,那么它会得到一个标准的primitive的初始化值,如果它是一个对象的reference,那么除非你创建一个新的对象并把reference连到那个对象,否则它就是null,如果是在定义的时候初始化,那就和非static数据没什么两样了。
无论创建多少对象,static数据只能有一份,如果先前没有创建过这种对象,因而其static的成员尚未初始化的话,初始化会先处理其static成员,再处理非static对象。
东莞企业网站建设-了解更多此方面的朋友请登陆:http://www.114my13.com/!这里有更多的惊喜等着您!