`
iamxi
  • 浏览: 191829 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

静态代码块(static{})详解

    博客分类:
  • Java
JVM 
阅读更多
静态代码块:即在类中的标有static修饰符的代码块,如:
static{
   //代码
}


与一般代码块的异同:
        相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,一般在代码块中对一些static变量进行赋值。
        不同点:静态代码块在非静态代码块之前执行。静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new一次就执行一次。非静态代码块可在普通方法中定义;而静态代码块不行。

与静态方法的却别:
    静态代码块在第一次初始化的时候被执行,静态方法在类加载的时候被加载,且必须需要主动调用才会执行。

执行顺序相关:
1、单个类的初始化顺序如下:为静态属性分配内存并赋值->执行静态代码块->为非静态属性分配内存并赋值->执行非静态代码块->构造函数。
2、有继承关系的类的初始化顺序如下:父静属->父静块->子静属->子静块->父非静属->父非静块->父构造->子非静属->子非静块->子构造。


static的一些使用注意事项:
1、静态方法只能调用同类中的其他静态成员(静态方法或是静态变量)。
2、静态方法不能使用this和super。因为静态方法不属于任何实例。
3、静态变量属于整个类,在类的方法中不能定义静态方法。
分享到:
评论

相关推荐

    静态代码块

    ### 静态代码块详解 #### 一、静态代码块概述 静态代码块是Java语言中的一个重要概念,主要用于初始化类级别的数据成员或执行一些仅需执行一次的操作。静态代码块通过`static`关键字来定义,在类加载时执行,且只...

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

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

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

    其次,我们要了解**静态代码块**(Static Initializer Block)。静态代码块是在类加载时执行的一段代码,它不依赖于类的实例,而是与类本身相关联。静态代码块通常用来初始化类级别的变量,或者执行一些仅需执行一次的...

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

    Java 代码块与静态代码块加载顺序详解 Java 代码块与静态代码块加载顺序是 Java 语言中一个重要的概念,理解这两个概念对于编写高效、可靠的 Java 代码至关重要。本文将详细介绍 Java 代码块与静态代码块加载顺序的...

    Java中的static静态代码块的使用详解

    类`StaticBlock`的执行顺序展示了静态代码块和构造块的执行次序:静态代码块先执行,然后是非静态代码块,最后是构造方法。每次创建新对象时,这个顺序都会重复。 5. **执行顺序:** - 类的加载:静态变量初始化...

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

    `static`代码块,或称静态代码块,是在类初始化过程中执行的一段代码。不同于普通的代码块,静态代码块在类加载时由JVM自动执行,并且只执行一次。这意味着静态代码块常被用来初始化静态变量或执行类级别的操作。多...

    Java 中普通代码块,构造代码块,静态代码块区别及代码示例

    静态代码块是使用`static`关键字声明的代码块,它主要用于类的初始化,特别是对类级别的静态变量进行初始化。静态代码块在类加载时仅执行一次,且先于非静态成员的初始化。如果一个类中有多个静态代码块,它们会...

    java static详解.doc

    3. **静态代码块(Static Code Blocks)** - 静态代码块是一段在类加载时会被执行的静态语句。它们可以有多个,按照在类中出现的顺序执行,并且只执行一次。这些代码块常用于初始化静态变量或执行只在类加载时需要...

    java技术:java中static作用详解

    3. **静态代码块(Static Blocks)**: - 静态代码块是一组在类中定义的静态语句块,它在类加载时执行,且只会执行一次。 - 静态代码块可以用来初始化静态变量,执行一些类级别的初始化操作。 - 静态代码块按照...

    java中的静态代码块、构造代码块、构造方法详解

    在上述例子中,"static A"首先被打印,这表明静态代码块`static { System.out.println("static A"); }`在HelloA类加载时执行。 2. **构造代码块**: 构造代码块是类中独立的代码块,不包含在任何方法内,但与构造...

    Java静态static关键字原理详解

    静态代码块是指使用static关键字修饰的代码块。静态代码块是在类加载时执行的,它可以用来对静态成员变量进行赋值。 例如: ```java public class MyClass { public static int count = 0; static { count = 10...

    java中static作用详解

    3. **静态代码块(Static Code Blocks)**: - 静态代码块是一段在类加载时执行的静态语句序列。它们可以存在于类中任何位置,按出现顺序执行,且只执行一次。 - 静态代码块常用于初始化静态变量或执行一次性设置...

    static 关键字详解

    静态代码块中的语句`System.out.println("Static block initialized.");`会先于`main()`方法中的任何语句输出,证明了这一点。 #### 静态方法的调用 静态方法可以通过类名直接调用,如`UserStatic.meth(42);`。这...

    java static关键字详解(csdn)————程序.pdf

    当创建`Person`类的第一个对象时,静态代码块会被执行,后续创建的`Person`对象不再执行此代码块。 4. **静态导入包**: 静态导入允许我们直接引用类中的静态成员,而不需要指定类名。例如: ```java import ...

    Static关键字详解.docx

    静态块是一段用于初始化静态变量的代码,它在类加载时执行,且只执行一次。这对于需要在类加载时进行一次性设置的场景非常有用。 ```java public class MyClass { static int counter; static { counter = 0; /...

    Java 关键字static详解及实例代码

    被static修饰的代码块,我们称之为静态代码块,静态代码块会随着类的加载一块执行,而且他可以随意放,可以存在于该类的任何地方。 三、static的局限 static确实是存在诸多的作用,但是它也存在一些缺陷。 1. 它...

    Java软件开发实战 Java基础与案例开发详解 6-5 static修饰符 共13页.pdf

    通过上述内容可以看出,`static`关键字在Java中扮演着重要的角色,不仅可以用来定义静态变量和静态方法,还可以用于静态代码块和静态导入等场景,为程序员提供了更多的灵活性和便利性。掌握好`static`关键字的应用,...

    java中static关键字用法详解

    本文将详细介绍Java中static关键字的用法,包括静态变量、静态方法和静态代码块等几个方面。 静态方法 静态方法是指在一个类中定义的方法,并且使用static关键字修饰的方法。这种方法可以在不创建类的实例的情况下...

    Java代码块与代码加载顺序原理详解

    静态代码块是指在类成员位置,以static { }括起来,用于对类进行一些初始化,只加载一次。当new多个对象时,只有第一次会调用静态代码块,因为静态代码块和类变量一样,是属于类的,所有对象共享一份。 二、代码块...

    Java中static作用详解

    静态代码块是一组被`static`修饰的语句,它们在类加载时执行,且只执行一次。这种代码块常用于初始化静态变量,或执行只应在类加载时进行的设置。例如,如果你需要在程序开始时对一些配置信息进行预处理,可以将其...

Global site tag (gtag.js) - Google Analytics