方勃焱,玩dnf成植物人无影剑将其唤醒,上海普陀大学生圆圆
我们可以在构建器中执行初始化进程。但是不可以妨碍自动初始化的进行,它在构建器进入之前就会发生。下面的程序i首先会初始化为0,然后变成7。
class counter { int i; counter() { i = 7; } // . . .
如果是基本类型,会自动获取自己的标准初始化值;如果是指向一个对象,除非新建一个对象,否则为null
只有发生了第一次static
访问,它们才会创建。在那以后,static对象不会重新初始化
初始化的顺序是static
,随后是非static对象。
//: staticinitialization.java // specifying initial values in a // class definition. class bowl { bowl(int marker) { system.out.println("bowl(" + marker + ")"); } void f(int marker) { system.out.println("f(" + marker + ")"); } } class table { static bowl b1 = new bowl(1); table() { system.out.println("table()"); b2.f(1); } void f2(int marker) { system.out.println("f2(" + marker + ")"); } static bowl b2 = new bowl(2); } public class staticinitialization { public static void main(string[] args) { system.out.println( "creating new cupboard() in main"); system.out.println( "creating new cupboard() in main"); // t2.f2(1); } // static table t2 = new table(); } ///:~
如果把t2注释掉,table
没有程序访问,所以table不会初始化。
下面总结一下对象的创建过程。以dog类为例:
...
class spoon { static int i; static { i = 47; } }
上面的static块与其他static初始化一样,仅执行一次————首次生成这个类的第一个对象时,或者首次访问static成员时。
数组定义:int[] al;
或int al[];
。
数组初始化的方式:
int[] a1 = { 1, 2, 3, 4, 5 };
a = new integer[10];
我们可以将一个数组分配给另一个数组。能使用这个语句a2 = a1
。
基本数据类型的数组元素会自动初始化为“空”值(对于数值,空值是零,对于char,是null,对于boolean,是false)。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
浅析我对 String、StringBuilder、StringBuffer 的理解
使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)
Springboot整合freemarker 404问题解决方案
引入mybatis-plus报 Invalid bound statement错误问题的解决方法
网友评论