掌握java中的三种代码块的定义及使用

代码块概念

代码块本身并不是一个很难理解的概念,实际上之前也一直在使用。所谓代码块是指使用“{}”括起来的一段代码,根据位置不同,代码块可以分为四种:普通代码块、构造块、静态代码块、同步代码块,其中同步代码块本书将在多线程部分进行讲解,本章先来观察其他三种代码块。

普通代码块

直接定义在方法中的代码块称为普通代码块。

public class CodeDemo01{

public static void main(String args[]){

{  // 普通代码块

int x = 30 ; // 就属于一个局部变量

System.out.println("普通代码块 --> x = " + x) ;

}

int x = 100 ;  // 与局部变量名称相同

System.out.println("代码块之外 --> x = " + x) ;

}

};

运行结果:

C:\Documents and Settings\Administrator\桌面\java>java CodeDemo01

普通代码块 --> x = 30

代码块之外 --> x = 100

构造块:

将代码块直接定义在类中,则称为构造代码块。

class Demo{

{ // 直接在类中编写代码块,称为构造块

System.out.println("1、构造块。") ;

}

public Demo(){ // 定义构造方法

System.out.println("2、构造方法。") ;

}

};

public class CodeDemo02{

public static void main(String args[]){

new Demo() ;  // 实例化对象

new Demo() ;  // 实例化对象

new Demo() ;  // 实例化对象

}

};

运行结果:

C:\Documents and Settings\Administrator\桌面\java>java CodeDemo02

1、构造块。

2、构造方法。

1、构造块。

2、构造方法。

1、构造块。

2、构造方法。

构造块优先于构造方法执行,且执行多次,只要一有实例化对象产生,就执行构造块中的内容。

静态代码块:

直接使用static关键字声明就称为静态代码块.

class Demo{

{ // 直接在类中编写代码块,称为构造块

System.out.println("1、构造块。") ;

}

static{ // 使用static,称为静态代码块

System.out.println("0、静态代码块") ;

}

public Demo(){ // 定义构造方法

System.out.println("2、构造方法。") ;

}

};

public class CodeDemo03{

static{  // 在主方法所在的类中定义静态块

System.out.println("在主方法所在类中定义的代码块") ;

}

public static void main(String args[]){

new Demo() ;  // 实例化对象

new Demo() ;  // 实例化对象

new Demo() ;  // 实例化对象

}

};

运行结果:

C:\Documents and Settings\Administrator\桌面\java>java CodeDemo03

在主方法所在类中定义的代码块

0、静态代码块

1、构造块。

2、构造方法。

1、构造块。

2、构造方法。

1、构造块。

2、构造方法。

静态块优先于主方法执行,如果在普通类中定义的静态块,优先于构造块执行,不管不多少个实例化对象产生,静态代码块只执行一次,静态代码块的主要功能就是为静态发生初始化。

时间: 2024-10-13 06:13:09

掌握java中的三种代码块的定义及使用的相关文章

Java中的4种代码块

一.普通代码块 直接在一个方法中出现的{}就称为普通代码块,例子程序如下: 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关键字的代码

java中的四种代码块

一.普通代码块 直接在一个方法中出现的{}就称为普通代码块,例子程序如下: 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关键字的代码

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

1.java虚拟机运行程序,首先需要装载类,安装现装载父类,初始化父类的静态代码块和静态成员变量 再load子类.初始化子类静态代码块和成员变量 2.load完毕父类与子类后,从main函数入口执行程序,先输出,接着new实例化Beetle类,则先实例化父类Insect,实例化父类时,先初始化非静态成员变量和非静态代码块,接着执行父类构造方法 再实例化子类,实例化子类时,先初始化非静态成员变量和非静态代码块,接着执行子类构造方法. package it.xiangnan.test; public

详解 Java 中的三种代理模式

代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.      这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法.      举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人,来达到同样的目的.明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎

详解 Java 中的三种代理模式!

作者:岑宇 https://www.cnblogs.com/cenyu/p/6289209.html 代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法. 举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的

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

1.java虚拟机执行程序,首先须要装载类,安装现装载父类,初始化父类的静态代码块和静态成员变量 再load子类. 初始化子类静态代码块和成员变量 2.load完成父类与子类后,从main函数入口运行程序.先输出,接着new实例化Beetle类,则先实例化父类Insect,实例化父类时.先初始化非静态成员变量和非静态代码块,接着运行父类构造方法 再实例化子类,实例化子类时,先初始化非静态成员变量和非静态代码块,接着运行子类构造方法. package it.xiangnan.test; publi

Java - Java 中的三种 ClassLoader

1.虚拟机类加载器(称为"bootstrap class loader"),它本身没有父类加载器,它负责加载虚拟机的内置类,由于它是用C.C++写的,所以Java无法拿到其class文件,返回的都是空,因为C.C++编译后不是*.class文件 2.JDK扩展类加载器(sun.misc.Launcher$ExtClassLoader),它是虚拟机类加载器的子类,它负责加载java.x包下的类. 3.系统(应用)类加载器(sun.misc.Launcher$AppClassLoader)

Java中的三种工厂模式

/** * 设计模式之工厂模式,用户创建对象的,通过工厂模式来降低代码的耦合度 * @author  */ //简单工厂模式 public class SimpleFactory{        /**     * 根据不过的String参数 name返回不同的汽车对象name     * @param name     * @return     */    public Car getCar(String name){                /*         * 利用equals

java中的三种取整函数

舍掉小数取整:Math.floor(3.5)=3 四舍五入取整:Math.rint(3.5)=4 进位取整:Math.ceil(3.1)=4