`
firecym
  • 浏览: 47006 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

静态块与非静态块

 
阅读更多

在代码中,有时候会遇到这种情况,

static
{
        ....
}

 

以及不带static的情况:

 

{
        ...
}

 

有时候会对这些东西有些迷惑,今天刚好看到一个视频教程对此做了解释,这里分享一下。下面直接给出一个例子:

 

public class StaticBlock {
	//静态块
	static
	{
		System.out.println("这是静态块里的内容!");
	}
	//非静态块
	{
		System.out.println("这是非静态块里的内容!");
	}
	public static void main(String[] args) {

		for(int i = 0; i < 5; i++)
		{
			StaticBlock sb1 = new StaticBlock();
			StaticBlock sb2 = new StaticBlock();
		}

	}

}

 打印出来的结果是:

 

     这是静态块里的内容!
     这是非静态块里的内容!
     这是非静态块里的内容!
     这是非静态块里的内容!
     这是非静态块里的内容!
     这是非静态块里的内容!
     这是非静态块里的内容!
     这是非静态块里的内容!
     这是非静态块里的内容!
     这是非静态块里的内容!
     这是非静态块里的内容!

 

如果大家对 static 这个关键字的含义有所理解的话,这里就很清楚不过了。在上面的静态块里的内容是在类加载的时候执行,所以上面的静态块里的内容只执行一次。而非静态块里的内容是在对象初始化的时候执行,所以执行了10次。

分享到:
评论

相关推荐

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

    Java 静态代码块与非静态代码块详解 Java 中的代码块可以分为静态代码块和非静态代码块两种,两者的执行时机和作用域不同。本文将通过实例代码和详细解释,阐述 Java 静态代码块与非静态代码块的区别和应用场景。 ...

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

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

    java 静态块实例块构造器调用

    在Java继承体系中,子类会继承父类的非私有成员,包括静态块、实例块和构造器。调用顺序如下: 1. **静态块的执行顺序**:首先,从父类到子类,按照定义的顺序依次执行静态块。这意味着父类的静态块先于子类的静态...

    java类中静态域、块,非静态域、块,构造函数的初始化顺序

    4. **非静态块执行**:所有非静态块按它们在源代码中出现的顺序依次执行。 5. **构造函数调用**:调用类的构造函数完成对象的初始化。 #### 三、示例分析 接下来,我们将通过题目给出的代码示例来进一步说明这个...

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

    Java编程语言中,静态代码块、非静态代码块和构造函数是面向对象设计的重要组成部分,它们在类的初始化和对象创建过程中起到关键作用。本文将深入探讨这些概念,以及它们在实际开发中的应用。 首先,我们来理解静态...

    JAVA程序:静态块代码

    它的执行顺序早于类的非静态初始化块和构造函数。当类第一次被加载时,静态块按照它们在代码中的顺序依次执行。 下面是一个简单的静态块示例,展示了如何使用静态块初始化静态变量: ```java public class ...

    Java中的静态变量静态方法静态块与静态类.docx

    ### Java中的静态变量、静态方法、静态块与静态类 #### 一、静态变量 静态变量,也称为类变量,是定义在类中方法之外的,并且被`static`关键字修饰的变量。这类变量并不属于类的任何实例,而是属于类本身。这意味...

    静态方法同步 与 非静态方法同步

    本篇文章将深入探讨“静态方法同步”与“非静态方法同步”的差异、应用场景以及它们如何影响程序的并发性能。 首先,我们来了解什么是同步。在Java中,同步是通过`synchronized`关键字实现的,它用于确保同一时间...

    静态代码块

    静态代码块与实例代码块(非静态代码块)的主要区别在于它们的执行时机以及作用范围。 - **执行时机**:静态代码块在类加载时执行,而实例代码块则是在创建对象时执行。 - **作用范围**:静态代码块作用于整个类的...

    Java基础练习题练习下静态块的用处

    4. **作用域**:静态块中的代码不依赖于类的实例,因此它不能访问非静态成员,除非通过类名引用。 ### 静态块的用途 1. **静态变量初始化**:静态块常用于初始化静态变量,确保它们在任何实例化之前已经赋值。 ```...

    C#中静态与非静态方法比较

    ### C#中静态与非静态方法的深入解析 #### 引言 在C#编程语言中,静态方法和非静态方法是两种常见的方法类型。它们各自具有独特的特性和用途,在不同的场景下发挥着不可替代的作用。本文将从多个角度详细探讨这两...

    java中静态与非静态的区别

    ### Java中静态与非静态的区别 #### 一、静态类与非静态类 在Java中,**静态类**与**非静态类**有着明显的区别: 1. **成员组成**: - **静态类**只能包含**静态成员**和**静态方法**。这意味着你无法在静态类中...

    parse new

    5. **静态块与非静态块**: - 在类加载和对象创建过程中,静态初始化块和实例初始化块(也叫构造块)会被执行。静态块只在类首次加载时执行一次,而实例块在每次创建新对象时都会执行。 6. **异常处理**: - 如果...

    什么是静态(static)什么是静态方法,静态变量,静态块

    静态方法不能访问非静态成员,因为非静态成员在没有实例的情况下不存在。它们通常用于工具方法或与类的状态无关的操作,如计算、比较等。 ```java public class MathUtils { public static int add(int a, int b) ...

    java 静态非静态 字段方法 子类父类构造_初始化顺序!

    java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...

    Java常见笔试、面试题目深度剖析,方法重写详解、静态代码块与构造方法执行顺序问题

    5. 最后,执行当前类的非静态代码块(如果有)。 这个过程确保了对象在被创建之前,其类的静态属性和父类的静态属性已经被正确初始化。同时,通过构造方法链确保了父类的状态在子类状态之前完成初始化。 在实际...

    java-静态变量方法块

    在Java编程语言中,静态变量、静态方法、静态代码块以及非静态变量和非静态方法是核心概念,它们对于理解和编写Java程序至关重要。下面将详细解释这些概念,并通过实例程序来阐述它们的使用和内存管理。 首先,静态...

    Java中的静态变量、静态方法与静态代码块

    而非静态代码则在类的使用阶段(也是实例化一个类的时候)才会被初始化。  静态变量  可以将静态变量理解为类变量(与对象无关),而实例变量则属于一个特定的对象。  静态变量有两种情况:  ● 静态...

    关于Java静态成员变量和静态初始化块等的初始化顺序的详细介绍

    详细介绍了Java的静态成员变量、静态数据块、非静态成员变量和非静态成员变量等初始化顺序

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

    在继承关系中,静态代码块的执行顺序是:父类静态代码块 -&gt; 子类静态代码块 -&gt; 父类非静态代码块 -&gt; 父类构造方法 -&gt; 子类非静态代码块 -&gt; 子类构造方法。 静态代码块和静态方法的区别在于:静态代码块是自动执行的...

Global site tag (gtag.js) - Google Analytics