博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6.java 代码块
阅读量:5789 次
发布时间:2019-06-18

本文共 2065 字,大约阅读时间需要 6 分钟。

代码块

在java中用{}括起来的称为代码块,代码块可分为以下四种:

  • 普通代码块
  • 构造代码块
  • 静态代码块
  • 同步代码块

普通代码块

在方法或语句中出现的{}就称为普通代码块。普通代码块和一般语句的执行顺序由他们在代码中出现的次序决定,先出现先执行。

普通代码块一般过来限制变量的作用域,防止代码过多时可能产生的变量命名冲突。

示例:

public class testDemo {    public static void main(String[] args ) {        {            int x = 3;            System.out.println("普通代码块中的变量x=" + x);        }        int x = 1;        System.out.println("主方法中的变量想=" + x);        {            int y = 7;            System.out.println("普通代码块中的变量y=" + y);        }    }}

构造代码块

在类中直接使用没有任何修饰符的{}声明的代码块就是构造块。

和构造函数的作用类似,都能对对象进行初始化,并且只要实例化一个对象,构造代码块都会执行一次。

构造块优先于构造函数执行,如果存在多个构造代码块,则执行顺序按照定义的顺序依次执行。

示例:

public class testDemo {    public static void main(String[] args ) {        Test t = new Test();    }}class Test{    {        //构造代码块        System.out.println("构造代码块1。");    }    //构造函数    public Test(){        System.out.println("无参构造函数。");    }    {        //构造代码块        System.out.println("构造代码块2。");    }}输出结果:构造代码块1。构造代码块2。无参构造函数。

静态代码块

在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。

静态代码块在类被加载的时候就运行了,而且只运行一次,并且优先于各种代码块以及构造函数。如果一个类中有多个静态代码块,会按照书写顺序依次执行。

一般情况下,如果有些代码需要在项目启动的时候就执行,这时候就需要静态代码块。比如一个项目启动需要加载的很多配置文件等资源,我们就可以都放入静态代码块中。

示例:

public class testDemo {    public static void main(String[] args ) {        Test t1 = new Test();        System.out.println("**********");        Test t2 = new Test();    }}class Test{       static {        //静态代码块        System.out.println("静态代码块1。");    }       //构造函数    public Test(){        System.out.println("无参构造函数。");    }        static {        //静态代码块        System.out.println("静态代码块2。");    }  }输出结果:静态代码块1。静态代码块2。无参构造函数。**********无参构造函数。

同步代码块

使用synchronized(){}包裹起来的代码块,在多线程环境下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性。同步代码块需要写在方法中。

代码块执行顺序

静态代码块 > 构造代码块 > 构造函数

示例:

public class testDemo {    public static void main(String[] args ) {        Test t = new Test();    }}class Test{       {        //构造代码块        System.out.println("构造代码块");    }       //构造函数    public Test(){        System.out.println("构造函数");    }    static {        //静态代码块        System.out.println("静态代码块");    }    }输出结果:静态代码块构造代码块构造函数

转载地址:http://armyx.baihongyu.com/

你可能感兴趣的文章
一起谈.NET技术,你应该知道的15个Silverlight诀窍
查看>>
商教助手!解析夏普液晶高清宽屏投影机系列
查看>>
云南去年有望实现151万贫困人口净脱贫
查看>>
Java架构师面试题系列整理(大全)
查看>>
延伸产业链 中国产粮大省向“精深”问发展
查看>>
消费贷用户70%月收入低于5000元 80、90后是主要人群
查看>>
2018年内蒙古外贸首次突破1000亿元
查看>>
CTOR有助于BCH石墨烯技术更上一层楼
查看>>
被遗忘的CSS
查看>>
Webpack中的sourcemap以及如何在生产和开发环境中合理的设置sourcemap的类型
查看>>
做完小程序项目、老板给我加了6k薪资~
查看>>
java工程师linux命令,这篇文章就够了
查看>>
关于React生命周期的学习
查看>>
webpack雪碧图生成
查看>>
搭建智能合约开发环境Remix IDE及使用
查看>>
Spring Cloud构建微服务架构—服务消费基础
查看>>
RAC实践采坑指北
查看>>
runtime运行时 isa指针 SEL方法选择器 IMP函数指针 Method方法 runtime消息机制 runtime的使用...
查看>>
LeetCode36.有效的数独 JavaScript
查看>>
Scrapy基本用法
查看>>