java查漏补缺---代码块


普通代码块

定义在方法中

package 代码块;
/*
普通代码块
 */
public class Demo1 {
    public static void main(String[] args) {
        {
            int x =10;
            System.out.println("x = "+x);
        }
        int x=100;
        System.out.println("x = "+x);
    }
}
输出结果:
x = 10
x = 100

特点:可以拆分一个方法中的结构,以防止相同变量名称所带来的影响

构造代码块


package 代码块;
/*
构造块
 */
class Person{
    public Person(){
        System.out.println("构造方法执行");
    }
    {
        System.out.println("构造块执行");
    }
}
public class Demo2 {
    public static void main(String[] args) {
        new Person();
    }
}
输出结果:
		构造块执行
		构造方法执行

特点:构造块会优先于构造方法的执行,并且每次实例化对象都会调用构造块。

静态代码块


使用static关键字定义的代码块,可分为:在非主类中定义的,和在主类中定义

在非主类中进行代码块定义

package 代码块;
/*
静态块
 */
class Person2{
    public Person2(){
        System.out.println("构造方法执行");
    }
    static{
        System.out.println("静态代码块执行");
    }
    {
        System.out.println("构造块执行");
    }
}
public class Demo3 {
    public static void main(String[] args) {
        new Person2();
        new Person2();
        new Person2();

    }
}
输出结果:
		静态代码块执行
		构造块执行
		构造方法执行
		构造块执行
		构造方法执行
		构造块执行
		构造方法执行

特点:静态代码块(优先于构造块)优先执行,并且只执行一次,主要是为类中的静态属性初始化

在主类中定义

package 代码块;

public class Demo4 {
    static {
        System.out.println("静态代码块");
    }

    public static void main(String[] args) {
        System.out.println("主方法");
    }
}

特点:静态代码块优先于主方法执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值