一、普通代码块
  直接在一个方法中出现的{}就称为普通代码块,例子程序如下:
  

  public class CodeDemo01{
    public static void main(String[] args){
    //普通代码块
    {
      int x = 10;
      System.out.println("x=" + x);
    }
    int x = 100;
    System.out.println("x=" + x);
    }
  }

二、构造代码块

  直接在类中定义的没有加static关键字的代码块{}称为构造代码块,例子程序如下:
  public class CodeDemo02{
    public CodeDemo02(){
      System.out.println("========这是构造方法=========");
    }
    //这是构造代码块,而且在new对象时,构造代码块优先构造方法执行

    {
      System.out.println("=========这是构造块!=========");
    }
    public static void main(String[] args){
      new CodeDemo02();
      new CodeDemo02();
    }
  }

三、静态代码块
  使用static关键字声明的代码块称为静态代码块,静态块的主要目的是用来为静态属性初始化,例子程序如下:
  public class CodeDemo03  {
    static{
      System.out.println("这是主类中的静态代码块!");
     }
    public static void main(String[] args){
      new Demo();
      new Demo();
      new Demo();
    }
  }
  

  class Demo  {

    static{
      System.out.println("这是Demo类中的静态代码块!");
    }
    {
      System.out.println("这是Demo类中的构造块!");
    }
    public Demo(){
      System.out.println("这是构造方法!");
    }
  }
  静态块优先于主方法的执行,静态块优先于构造方法的执行,而且只执行一次!

四、同步代码块
  同步代码块主要出现在多线程中。例如:
  class SellThread implements Runnable{
    int ticket = 100;
    Object obj = new Object();
    public void run(){
      while(true){
        synchronized(obj){
          if(ticket > 0){
            ticket--;
          }
        }
      }
    }

  }

最新文章

  1. .net post的参数如果出现乱码如何解决!
  2. OpenStack collectd的从零安装客户端
  3. 【CSS】Beginner5:Margins&Padding
  4. WCF学习心得--客户端获取服务端自定义类数据
  5. WebView实现文件下载功能
  6. javascript 获取 class 样式 重新赋值class样式 为div等系列标签内更改内容
  7. 单点登录CAS使用记(五):cas-client不拦截静态资源以及无需登录的请求。
  8. 【YFMemoryLeakDetector】人人都能理解的 iOS 内存泄露检测工具类
  9. hive 集成 hbase NoClassDefFoundError: org/apache/htrace/Trace
  10. Vue自定义标签
  11. angualr-cli命令创建文件
  12. 【XSY1476】平凡之路 斜率优化DP
  13. 关于用wkwebview加载沙盒documents下html文件 模拟器可以,真机不行的解决方案
  14. P2209 [USACO13OPEN]燃油经济性Fuel Economy
  15. js日常
  16. 2019.01.02 poj3046 Ant Counting(生成函数+dp)
  17. 高能天气——团队Scrum冲刺阶段-Day 2
  18. Android dialog 全屏
  19. C++ 实现的一个打印日历程序
  20. Ubuntu16.04安装和卸载MySQL 5.7

热门文章

  1. bin sh git@github.com no such file or directory
  2. 花瓶使用笔记 (抓数据时,记得添加host,不然抓不了包的)
  3. solr精确查询,查询关键字分词后,指定满足匹配所有
  4. oracle9i-11.2安装包及补丁包下载链接
  5. Unix socket的准备(一)
  6. django-控制mysql事物
  7. SQL Server实时同步更新远程数据库遇到的问题
  8. Java——复制txt文件
  9. [jOOQ中文]3. 数据库版本管理工具Flyway
  10. C# 之 日常问题积累