无锡知名网站,个人做购物商城网站会罚款吗,广东政务服务网,上海网站建设技巧Java中用{ }括起来的代码段就是代码块,他分为如下几种类型位置作用局部代码块在方法当中使用#xff0c;作用是控制变量的生命周期。局部代码块的变量#xff0c;只能在代码块内部使用#xff0c;在执行结束后会被Java回收构造代码块在类的成员位置使用。在每次执行构造方法…Java中用{ }括起来的代码段就是代码块,他分为如下几种类型位置作用局部代码块在方法当中使用作用是控制变量的生命周期。局部代码块的变量只能在代码块内部使用在执行结束后会被Java回收构造代码块在类的成员位置使用。在每次执行构造方法前先执行构造代码块,可以将多个构造方法中的相同的代码放到构造代码块中,对对象进行初始化.静态代码块在类的成员位置代码块前添加static修饰符。一般用于给类初始化,被静态修饰的代码块仅执行一次.静态代码块、构造代码块、构造方法的优先级为:静态代码块 构造代码块 构造方法;需要注意的是静态代码块和构造代码块是在创建对象new的时候就开始执行了,匿名对象也可以调用。静态代码块一般用于某些需要在类执行之前就要执行的代码,和静态方法类似,优先级都高于类,两者的不同是静态方法需要手动通过类名.方法名来调用,而静态代码块是自动执行的,在加载类前会先执行类中的静态代码块。对象实例化的时候先检查类中是否有静态代码块,若有则先执行静态代码块,再检查是否有构造代码块,最后执行构造方法。在继承关系中,对象实例化的时候会先执行父类的静态代码块然后是子类的静态代码块然后再执行父类的构造代码块和父类无参构造方法最后执行子类的构造代码块和无参构造方法。举例一:package com.study;class Block {static {System.out.println(我是静态代码块); //只在第一次调用的时候执行,优先级最高}{System.out.println(我是构造代码块); //每次被新对象调用时都执行,优先级在静态代码块之后}public Block() {super();System.out.println(我是无参构造方法);}public void method() {System.out.println(我是成员方法);}}public class APPTEXT {public static void main(String[] args) {{String a 我是局部代码块;System.out.println(a);}//System.out.println(a); 报错局部代码块内的变量在代码块外不能访问,代码块执行完后就会被回收System.out.println(********);Block b new Block();System.out.println(********);b.method();System.out.println(********);Block c new Block();System.out.println(********);c.method();}}程序执行结果输出如下我是局部代码块********我是静态代码块我是构造代码块我是无参构造方法********我是成员方法********我是构造代码块我是无参构造方法********我是成员方法本博客转载自CSDN作者liuchonghua原文https://blog.csdn.net/liuchonghua/article/details/79977496