静态代码块是在类加载时执行的一段代码,可以用来初始化静态成员变量。静态代码块可以进行更复杂的计算或初始化操作,且可以在多个静态成员变量之间共享计算结果。 publicclassMyClass{publicstaticintmyStaticVariable;static{myStaticVariable=calculateStaticVariable();}privatestaticintcalculateStaticVariable(){// 计算静态...
静态成员:在类定义中,它的成员(包括成员变量和成员函数),这些成员可以用关键字static声明为静态的,称为静态成员。 静态成员变量需要在类外分配空间,static 成员变量是在初始化时分配内存的,程序结束时释放内存。 静态成员函数只能访问静态成员函数和静态成员变量,没有this指针。 静态成员是整个类共有的,通过对象名和...
静态成员的初始化的阶段,根据有没有显示初始化而异,根据是否被final修饰而异: privatestaticintnum = 11;privatestaticintnum2;privatestaticfinalintnum3 = 12 在类加载的准备阶段会给所有static 成员在方法区中分配内存,并设置变量初始值【这个初始值就是零值,零值根据类型不同而异】,所以可以理解为num2就是默认...
* static成员变量 */staticintfield_c1=5;staticintfield_c2;staticintfield_c3;staticintfield_c4;staticintfield_c5;/* * static final 成员变量 */staticfinalintfield_d1=5;//报错:未初始化 。The blank final field field_d2 may not have been initialized//static final int field_d2;//报错:未初...
初始化过程是这样的: 1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化; 2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化; 3.其次,初始化父类的普通成员变量和代码块,在执行父类的构造方法; ...
staticvoidf(){}publicvoidd(){}publicstaticvoide(){InnerClass.staticTest.d();}}publicclassStaticMember{publicStaticMember(){System.out.println("StaticMember");}}在StaticTest 测试类中我写了三种静态域分别是静态成员变量,静态代码块以及静态内部类,下面通过不同的case测试上面三种静态域何时被初始化。
static成员变量初始化 注意:静态成员变量一般不会放在构造方法中来初始化,构造方法中初始化的是与对象相关的实例属性 静态成员变量的初始化分为两种:就地初始化和静态代码块初始化 就地初始化 就地初始化指的是:在定义时直接给出初始化 publicclassStudent{privateStringname;privateStringgender;privateintage;privatedouble...
静态代码块通常用于执行只需要在类加载时执行一次的初始化操作。示例代码: public class MyClass { static { System.out.println("This is a static block."); } } 这个例子中的静态代码块会在类加载时打印出一条消息。 普通成员变量:然后,非静态成员变量会被初始化。这些变量的初始化顺序与它们在类中出现的...
publicclassA1{inti;publicA1(){i=100;}}//创建对象时初始化i=100 初始顺序 静态属性初始化 static int a=1; 静态方法块初始化 static { System.out.println("静态代码块执行"); } 普通属性初始化 int x=10; 普通方法块初始化 { System.out.println("普通代码块执行"); ...