`

Java中的代码块

阅读更多

一、Java中的4种代码块


  1. 普通代码块

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

 

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);
	}
}
 

 

  2. 构造代码块

  直接在类中定义的没有加static关键字的代码块{}称为构造代码块,例子程序如下:

 

public class CodeDemo02 {

	public CodeDemo02() {
		System.out.println("========这是构造方法=========");
	}

	// 这是构造代码块,而且在new对象时,构造代码块优先构造方法执行
	{
		System.out.println("=========这是构造块!=========");
	}

	public static void main(String[] args) {
		new CodeDemo02();
	}
}
 

 

  3. 静态代码块

  使用static关键字声明的代码块称为静态代码块,静态块的主要目的是用来为静态属性初始化,例子程序如下:

 

public class CodeDemo03 {

	static {
		System.out.println("这是主类中的静态代码块!");
	}

	public static void main(String[] args) {
		new Demo();
	}
	
}

class Demo {

	static {
		System.out.println("这是Demo类中的静态代码块!");
	}

	{
		System.out.println("这是Demo类中的构造块!");
	}

	public Demo() {
		System.out.println("这是构造方法!");
	}
	
}
 


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


  4. 同步代码块


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


二、举例

      准确说块是一个作用域,就是里面的变量之类的数据的作用范围。
      其中,static{}块中的语句是属于类的本身,不属于类中的任何方法,所以在类加载的时候就开始执行。
      非静态块中的变量在{ }外是不可见的。


      看以下一个例子,仔细分析为什么有这样的结果:

public class TestSegment {
	public void m() {
		System.out.println("mmmm");// 不调用时,不能自动执行
	}

	public static void main(String[] args) {
		System.out.println("main");
	}

	static {// 静态块
		{ // 非静态块
			int i = 11111; // 此处i不影响括号外界的i
			System.out.println("ddd" + i);
		}
		int i = 222222; // 在此i与前面不重名
		System.out.println("sss" + i);
	}
}


  输出结果:

  ddd11111
  sss222222
  main

 

分享到:
评论

相关推荐

    JAVA常用代码块

    JAVA常用代码块 JAVA常用代码块 JAVA常用代码块 JAVA常用代码块 JAVA常用代码块

    Java基础之代码块.docx

    Java 中的代码块是指用一对花括号 {} 包围的代码区域,这些代码块可以出现在不同的位置,执行时机也不同。下面对代码块的种类、执行时机和运行顺序进行详细的解释。 普通语句块 普通语句块是指写在方法中的代码块...

    eclipse java 代码块折叠插件

    eclipse java 代码块折叠插件,可以用对if、for、while、function 等代码块折叠,类似vs IDE。 使用方法: (1)解压; (2)将 com.cb.eclipse.folding_1.0.6.jar 拷贝到eclipse 安装目录的插件目录(plugins目录)...

    Java面向对象(高级)- 类的成员之四:代码块

    Java面向对象编程中的类成员之一是代码块,这部分内容主要探讨了Java中代码块的概念、分类、用途以及执行时机。代码块在Java中扮演着初始化类或对象成员变量的角色,特别是在需要复杂计算或获取外部信息来设定初始值...

    Java 普通代码块静态代码块执行顺序(实例讲解)

    在Java编程语言中,了解代码块的执行顺序对于编写高效且无错的代码至关重要。这里我们将深入探讨Java中的普通代码块(实例初始化块)和静态代码块的执行顺序,并通过实例来阐述这一概念。 首先,我们需要明白两种...

    举例说明Java中代码块的执行顺序

    下面我们将详细探讨Java中代码块的执行顺序,包括静态属性、非静态属性、静态代码块、非静态代码块以及构造函数。 首先,让我们回顾一下结论: 1. 当创建一个类的实例时,首先会执行类中的静态属性和静态代码块,...

    java 静态代码块通过类加载器获取资源文件例子

    在这个静态代码块中,我们加载了"app.properties"文件,并将其中的属性设置为系统的环境变量,这样在整个应用生命周期中,这些配置都是可用的。 总之,通过Java的静态代码块和类加载器,我们可以有效地管理和加载...

    java 代码块折叠插件

    Java 代码块折叠插件是一种增强IDE(集成开发环境)功能的工具,它允许程序员更加高效地管理和阅读源代码。在编程过程中,特别是在处理大型项目时,代码的组织和可读性至关重要。代码块折叠功能使得开发者能够隐藏...

    java静态代码块与非静态代码块.doc

    Java 中的静态代码块和非静态代码块是两个重要的概念,它们在 Java 中的应用非常广泛。下面我们来详细介绍这两个概念。 静态代码块 静态代码块是 Java 中的一种特殊的代码块,它是静态的,意思是说它是属于类的,...

    java静态代码块与非静态代码块参照.pdf

    静态代码块中的代码在类加载时自动执行,输出结果为“父类的静态代码块在执行 a=10”。这说明静态代码块确实是在类加载时自动执行的。 非静态代码块 非静态代码块是指没有使用静态关键字修饰的代码块,属于实例...

    java 代码块与静态代码块加载顺序

    Java 代码块是指在类中使用大括号 `{}` 包围的代码块,这些代码块可以出现在类的任何位置,包括构造函数、静态代码块、实例代码块等。Java 代码块的执行顺序取决于其所在的位置和上下文环境。 在上面的实例代码中,...

    java中的static变量,方法,代码块

    本文将深入探讨`static`在变量、方法和代码块中的应用,通过示例和解释帮助读者更深刻地理解其功能与特性。 #### 1. Static变量 `static`变量,亦称为静态变量或类变量,与实例变量相对。其最显著的特点在于,无论...

    java代码块测试

    4. **finally代码块**:用于异常处理,无论是否抛出异常,finally块中的代码总会被执行。这对于确保资源清理(如关闭文件流)至关重要。 接下来,我们将关注Struts2框架,这是一个流行的Java Web开发框架,它基于...

    Java静态代码块作用及执行顺序解析

    Java静态代码块是Java语言中的一种特殊代码块,它们在类加载的时候执行,且只执行一次。它们通常用来初始化静态变量、设置静态变量的初始值等。静态代码块的作用域是整个类,而不是某个对象实例。 静态代码块的执行...

    Java的静态代码块、非静态代码块、构造函数

    非静态代码块可以包含任意Java代码,但通常用于设置实例变量的初始值。比如: ```java public class MyClass { int value; { value = 5; // 非静态代码块,初始化实例变量 } public MyClass() { // 这里可以...

    Java构造代码块,静态代码块原理与用法实例分析

    静态代码块中只能修改类变量。 例如: ``` class Person{ static String gender; int age; static { System.out.println("静态代码块执行完成"); gender="男";//更改的变量只能是类变量 } Person(){ System...

    wps代码块插件wps-syntaxhighlighter

    wps代码块插件

    Java经典代码 Java经典代码

    "Java经典代码"通常指的是在Java编程中常见的、实用的、经过时间检验的代码片段,这些代码可以解决常见问题,或者展示了一些核心概念和技术。在这个Java项目案例导航源代码的压缩包中,我们可以期待找到各种各样的...

    java中的构造代码块和构造函数.pdf

    java中的构造代码块和构造函数.pdf

    java源代码,java源代码

    在Java编程中,源代码通常以`.java`为扩展名,经过Java编译器的处理,会被转化为字节码(`.class`文件),然后由Java虚拟机执行。 Java源代码的知识点涵盖了多个方面: 1. **基本语法**:Java源代码遵循特定的语法...

Global site tag (gtag.js) - Google Analytics