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("我是普通代码块!");

        }

    }

    输出:

    我是静态代码块!

    我是构造代码块!

    我是构造方法!

    我是构造代码块!

    我是构造方法!

    我是普通代码块!

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

  • 相关阅读:
    unbuntu下安装多个JAVA JDK版本及如何切换
    google play上获取apk文件
    android开发里跳过的坑——android studio打包的APK签名无效
    android studio配置so文件路径
    Android 4.4.2上与BLE 蓝牙锁设备的通讯
    android 上AES解密是报错javax.crypto.BadPaddingException: pad block corrupted
    android开发里跳过的坑——listview不显示
    如何在Linux服务器中使用arping命令
    如何在CentOS 8上安装OpenLiteSpeed
    如何在Ubuntu 20.04 LTS系统上安装ModSecurity Apache
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11131544.html
Copyright © 2011-2022 走看看