代码块

本文介绍了Java中普通代码块、构造代码块和静态代码块的执行顺序。静态代码块在类加载时执行一次,main方法随后,接着是构造代码块,在每次创建对象时运行,最后是构造方法。
摘要由CSDN通过智能技术生成

Java中普通代码块、构造代码块和静态代码块的区别

执行顺序:(优先级由高到低)静态代码块>main方法>构造代码块>构造方法;

1.普通代码块
 package org.west.demo5;
public class lianxi {
    public static void main(String[] args) {
//普通代码块:在方法或语句中出现{}就称为普通代码块。
//普通代码块和一般语句执行顺序由他们在代码中的先后顺序决定---先出现先执行
        {
            int a = 3;
            System.out.println("普通代码块内的变量a=" + a);
        }

            int b = 4;
            System.out.println("主方法中的变量b=" + b);

        {
            int c = 6;
            System.out.println("普通代码块内的变量c=" + c);
        }

    }
}
/*      运行结果为:
        普通代码块内的变量a=3
        主方法中的变量b=4
        普通代码块内的变量c=6
*/
2.构造代码块
package org.west.demo5;
public class lianxi2 {
    //构造块:直接定义在类中定义且没有加static关键字的代码块称为{}构造代码块。
    // 构造代码块每次在创建对象时被调用,并且构造代码块执行的优先级高于构造方法。
    {
        System.out.println("第一构造代码块");
    }
    public lianxi2(){
        System.out.println("构造方法");
    }
    {
        System.out.println("第二构造代码块");
    }

    public static void main(String[] args) {
       new lianxi2();
       new lianxi2();


    }
}
/*  运行结果:    
第一构造代码块
第二构造代码块
构造方法
第一构造代码块
第二构造代码块
构造方法
*/

静态代码块之随着类的加载执行一次,而构造代码块会随着对象的创建而运行。

3.静态代码块
package org.west.demo5;
public class lianxi3 {
//    静态代码块:在java中使用关键字 static所修饰的代码块。
//    静态代码块属于类,为类的属性初始化。
//    每个静态代码块只执行一次。由于JVM再加载类时会执行静态代码块,所以静态代码块优先于主方法执行
//    如果类中有多个静态代码块,按照定义的先后顺序来执行。
//    注意事项:静态代码块不能存在于任何方法中,并且静态代码块不能直接访问实例变量和实例方法,需要通过对象来访问

    {
        System.out.println("test的构造代码块");
    }

        static{
            System.out.println("test的静态代码块");
        }
        public lianxi3(){
            System.out.println("lianxi3的构造方法");
        }

    public static void main(String[] args) {
        System.out.println("lianxi3的主方法");
        new lianxi3();
        new lianxi3();
    }
}
/*运行结果:
test的静态代码块
lianxi3的主方法
test的构造代码块
lianxi3的构造方法
test的构造代码块
lianxi3的构造方法*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值