Java的四种代码块

来源:互联网 发布:java 获取磁盘io 编辑:程序博客网 时间:2024/05/22 17:13

Java代码块 

一.在Java中,使用”{}”括起来的代码称为代码块,代码块可以分为以下四种: 

1.普通代码块:就是类中方法的方法体 
  public void xxx(){ 
      //code 
  } 


2.构造块:用{}裹起来的代码片段,构造块在创建对象时会被调用,每次创建对象时都会被调用,并且优先于类构造函数执行。 构造块中定义的变量是局部变量。
  { 
     //code 
  } 


3.静态块:用static{}裹起来的代码片段,只会被执行一次(第一次加载此类时执行,比如说用Class.forName("")加载类时就会执行static  block),静态块优先于构造块执行。 
  static{  
     //code 
  } 

4.同步代码块:使用synchronized(obj){}裹起来的代码块,在多线程环境下,对共享数据进行读写操作是需要互斥进行的,否则会导致数据的不一致性。常见的是synchronized用来修饰方法,其语义是任何线程进入synchronized需要先取得对象锁如果被占用了,则阻塞,实现了互斥访问共享资源。而synchronized也是有代价的。一个常见的场景是,一个冗长的方法中,其实只有一小段代码需要访问共享资源,这时使用同步块,就只将这小段代码裹在synchronized  block,既能够实现同步访问,也能够减少同步引入的开销。 同步代码块须写在方法中。
    synchronized(obj){ 
        //code 

    } 

0 0
原创粉丝点击