zoukankan      html  css  js  c++  java
  • java代码块

    代码块指的是使用"{}"括起来的一段代码,根据代码块存在的位置可以分为4种:

    普通代码块;

    构造代码块;

    静态代码块;

    同步代码块(线程同步的时候讲解)

    代码块里变量的作用域:

    只在自己所在区域(前后的{})内有效;

    普通代码块:

    普通代码块就是直接定义在方法或语句中定义的代码块:

    public void show(){

    普通代码块

    }

    构造代码块:

    直接写在类中的代码块:

    优先于构造方法执行,每次实例化对象之前都会执行构造代码块。

    Eg:

    public class Demo {

        {

                 System.out.println("我是构造代码块");

        }

        public Demo(){

                  System.out.println("我是构造方法");

        }

        public static void main(String[] args) {

                 Demo d1  = new Demo();

                 Demo d2  = new Demo();

        }

    }

    静态代码块

    使用static 修饰的构造代码块:

    优先于主方法执行,优先于构造代码块执行,不管有创建多少对象,静态代码块只执行一次,可用于给静态变量赋值;

    Eg:

    package reviewDemo;

    /**

     * 测试各代码块的优先级

     *  优先级顺序:静态代码块  > 构造代码块 > 普通代码块

     *  备注:无论创建几个对象,静态代码块只执行一次!

     */

    public class Demo13 {

        Demo13(){

            System.out.println("我是构造方法!");

        }

        {

            System.out.println("我是构造代码块!");//实例化对象的时候才会去调用!

        }

        static{

            System.out.println("我是静态代码块!");

        }

       

        public static void main(String[] args) {

            new Demo13();

            new Demo13();//再次创建对象,证明无论创建几次对象,静态代码块都只执行一次

            System.out.println("我是普通代码块!");

        }

    }

    输出:

    我是静态代码块!

    我是构造代码块!

    我是构造方法!

    我是构造代码块!

    我是构造方法!

    我是普通代码块!

    我的总结:这个例子非常好!

  • 相关阅读:
    Android 自定义View (二) 进阶
    设计模式 装饰者模式 带你重回传奇世界
    Android 自定义View (一)
    C++ 习题 输出日期时间--友元类
    设计模式 观察者模式 以微信公众服务为例
    Binomial Coeffcients 历届山东省省赛题
    做一只美腻的程序媛
    java编程中容易犯2的细节汇总
    Arrays.asList()
    SQL Server用表组织数据
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11131544.html
Copyright © 2011-2022 走看看