从零开始的Java学习(2)

Episode-2 开始研究Java的语法吧!

在上一篇文章中,我介绍了Java的环境搭建以及一个具体程序的编写和执行

现在我们可以探讨一些更加深奥的东西

关于Java中各个类的执行顺序的研究

这可能有一点抽象

我们都知道,java中定义一个方法是这样做的:

在Java中,main函数必须定义为public static void main()

其中,static将声明一个静态对象,该对象在类(class)被定义时加载。

我们可以用下面这个程序来切身体会这一点:

public class MyClass {
    static {
        System.out.println("Static block 1");
    }

    static {
        System.out.println("Static block 2");
    }

    {
        System.out.println("Instance block 1");
    }

    {
        System.out.println("Instance block 2");
    }

    public MyClass() {
        System.out.println("Constructor");
    }

    public static void staticMethod() {
        System.out.println("Static method");
    }

    public void instanceMethod() {
        System.out.println("Instance method");
    }

    public static void main(String[] args) {
        System.out.println("Before creating object");
        MyClass.staticMethod();
        System.out.println("After calling static method");
        MyClass obj1 = new MyClass();
        System.out.println("After creating first object");
        MyClass obj2 = new MyClass();
        System.out.println("After creating second object");
        obj1.instanceMethod();
        System.out.println("After calling instance method on first object");
        obj2.instanceMethod();
        System.out.println("After calling instance method on second object");
    }
}

运行上述程序,会得到这样的结果:

Static block 1
Static block 2
Before creating object
Static method
After calling static method
Instance block 1
Instance block 2
Constructor
After creating first object
Instance block 1
Instance block 2
Constructor
After creating second object
Instance method
After calling instance method on first object
Instance method
After calling instance method on second object

我们可以发现,在创建对象之前,两个static代码块已经完成了输出。

在之后创建对象后,两个static不会再次输出

这次的博客可能有点难,我还会进行修改ORZ


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值