标签:计算 变量 顺序 静态成员 运行 位移 初始 lob system
static class HelloA {
public HelloA() {
System.out.println("HelloA");
}
{
System.out.println("I m A class");
}
static {
System.out.println("static A");
}
}
static class HelloB extends HelloA {
public HelloB() {
System.out.println("HelloB");
}
{
System.out.println("I m B class");
}
static{
System.out.println("static B");
}
public static void main(String[] args) {
new HelloB();
}
}
这个考察的是类的初始化顺序,一般是父类的静态变量,静态代码块->子类的静态成员,静态代码块->父类的成员变量->父类的初始化块(就是直接用大括号扩起来的,平时不常见)->父类的构造函数->子类的成员变量->子类的初始化块->子类的构造函数
运行结果如下:
static A
static B
I m A class
HelloA
I m B class
HelloB
我能想到的只有使用位移了
5 << 5
测试一下
int n1 = 5 * 32;
int n2 = 5 << 5;
System.out.println(n1);
System.out.println(n2);
运行结果
160
160
标签:计算 变量 顺序 静态成员 运行 位移 初始 lob system
原文地址:https://www.cnblogs.com/wenjianes/p/9999325.html