————下课后————
类的加载顺序。
运行下面代码,输出的结果是()
class A {
public A() {//构造函数
System.out.println("class A");
}
{ //代码块
System.out.println("I'm A class");
}
static { //静态代码块
System.out.println("class A static");
}
}
public class B extends A {
public B() {//构造函数
System.out.println("class B");
}
{ //代码块
System.out.println("I'm B class");
}
static { System.out.println("class B static");
} //静态代码块
public static void main(String[] args) {
new B();
}
}
A
class A static
class B static
I'm A class
class A
I'm B class
class B
B
class A static
I'm A class
class A
class B static
I'm B class
class B
C
class A static
class B static
class A
I'm A class
class B
I'm B class
D
class A static
class A
I'm A class
class B static
class B
I'm B class
class Print{
Print(){
System.out.println("haha");
}
}
public class Cats {
static {
System.out.println("static Casts");
}
static Print test1 = new Print();
}
class qiaoGeli extends Cats{
public static void main(String [] args)
{
qiaoGeli t1 = new qiaoGeli();
}
}
以上程序输出:
static Casts
haha
换一下静态变量和静态代码块的执行顺序。
class Print{
Print(){
System.out.println("haha");
}
}
public class Cats {
static Print test1 = new Print();
static {
System.out.println("static Casts");
}
}
class qiaoGeli extends Cats{
public static void main(String [] args)
{
qiaoGeli t1 = new qiaoGeli();
}
}
以上程序输出:
haha
static Casts
class Print{
Print(){
System.out.println("haha");
}
}
public class Cats {
Print test = new Print();
Cats(){
System.out.println("I'm qiaoGeLi");
}
{
System.out.println("I'm xiaoMeng");
}
public static void main(String [] args)
{
Cats cat = new Cats();
}
}
以上程序输出:
haha
I'm xiaoMeng
I'm qiaoGeLi
class Print{
Print(){
System.out.println("haha");
}
}
public class Cats {
Cats(){
System.out.println("I'm qiaoGeLi");
}
{
System.out.println("I'm xiaoMeng");
}
Print test = new Print();
public static void main(String [] args)
{
Cats cat = new Cats();
}
}
以上程序输出:
I'm xiaoMeng
haha
I'm qiaoGeLi
类的执行顺序。
小萌:乔哥辛苦了,给你按摩!
PS:表情包出自微信公众号:叔婆饭 微博@叔婆饭spfan
END!