一、普通代码块

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

  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("这是构造方法!");

    }

  }

  静态块优先于主方法的执行,静态块优先于构造方法的执行,而且只执行一次!

  四、同步代码块

  同步代码块主要出现在多线程中。

  package cn.sunzn.synchronize;

  public class SynchronizeCode {
     public static void main(String[] args) {
         new Thread() {
             public void run() {
                 while (true) {
                       System.out.print("同步");
System.out.println("代码");
                 }
             };
         }.start();
         new Thread() {
             public void run() {
                 while (true) {
                     System.out.print("Synchronize");
                     System.out.println("Code");
                 }
             };
         }.start();
     }
  }

Java中的4种代码块的更多相关文章

  1. java中的四种代码块

    一.普通代码块 直接在一个方法中出现的{}就称为普通代码块,例子程序如下: public class CodeDemo01{ public static void main(String[] args ...

  2. java中的synchronized同步代码块和同步方法的区别

    下面这两段代码有什么区别? //下列两个方法有什么区别 public synchronized void method1(){} public void method2(){ synchronized ...

  3. java中成员变量、代码块、构造函数运行顺序

    1.java虚拟机执行程序,首先须要装载类,安装现装载父类,初始化父类的静态代码块和静态成员变量 再load子类. 初始化子类静态代码块和成员变量 2.load完成父类与子类后,从main函数入口运行 ...

  4. java中父类子类静态代码块、构造代码块执行顺序

    父类静态(代码块,变量赋值二者按顺序执行) 子类静态 父类构造代码块 父类构造方法 子类构造代码块 子类构造方法 普通方法在实列调用的时候执行,肯定位于上面之后了 //父类A public class ...

  5. JAVA基础学习之throws和throw的区别、Java中的四种权限、多线程的使用等(2)

    1.throws和throw的区别 throws使用在函数外,是编译时的异常,throw使用在函数内,是运行时的异常 使用方法 public int method(int[] arr) throws ...

  6. 夯实Java基础(八)——代码块

    在Java中代码块指的是使用”{}”括起来的代码称为代码块.代码块一共分为4种:局部代码块,静态代码块,同步代码块,构造代码块. 1.局部代码块 局部代码块就是定义在方法体内部的代码块. public ...

  7. 在Java中直接调用js代码(转载)

    http://blog.csdn.net/xzyxuanyuan/article/details/8062887 JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Ja ...

  8. 在Java中直接调用js代码

    JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Java中直接调用js代码 不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: “alert ...

  9. Java中的五种单例模式实现方法

    [代码] Java中的五种单例模式实现方法   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 ...

随机推荐

  1. html2canvas根据DOM元素样式实现网页截图

    html2canvas是一个相当不错的JavaScript类库,它使用了html5和css3的一些新功能特性,实现了在客户端对网页进行截图的功 能.html2canvas通过获取页面的DOM和元素的样 ...

  2. android开发期间使用真机调试但系统无法识别出真机

    前言 前些天重装了系统,好不容易把所有的软件装好,结果发现打开android studio真机调试却出了问题. 一.症状: 1.手机端设置完全没问题(打开了调试模式......) 2.电脑端右下角不出 ...

  3. Maya 建模完成后的整理

    我们在使用Maya建模完成后可能会进行发布,为了自己或他人的方便使用,我们需要对建立好的模型进行些处理: 1. 删除历史记录:选择模型,Edit -> Delete by Type -> ...

  4. Displaying a full list of groups in Odoo's Kanban view

    Kanban view is probably the most flexible view in Odoo. It can be used for many different purposes. ...

  5. linux笔记八---------文件查找

    1.find文件查找指令 > find  目录  参数 参数值,参数 参数值.....    > find  /  -name  passwd   //从系统根目录开始递归查找name=p ...

  6. 输出单向链表中倒数第k个结点

    描述 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针. 链表结点定义如下: struct ListNode { int       m_nKey; ListNode* ...

  7. IOS第二天多线程-04简化单例模式

    ******HMSingleton-ARC.h // .h文件 #define HMSingletonH(name) + (instancetype)shared##name; // .m文件 #de ...

  8. 面向系统管理员的10款Linux GUI工具 (转自51cto)

    如果你是名系统管理员,现已到了Linux非知道不可的地步.如果你在更庞大的环境下工作,更是如此.许多企业组织已迁离了一切都借助点击式GUI来管理的Windows.幸好,Linux也有许多GUI工具可以 ...

  9. GDC2016 [全境封锁],11个种类5个派系的敌人设计思路

    [汤姆克兰西:全境封锁],11个种类5个派系的敌人设计思路 实现[汤姆克兰西]射击RPG的AI开发   日文链接:http://game.watch.impress.co.jp/docs/news/2 ...

  10. Android 签名比较

    一. keytool -list -printcert -jarfile "%filename%" 二. 非常low方法:下载的应用安装能成功覆盖原应用则签名一致三. 作者:陈子腾 ...