`

java static

    博客分类:
  • java
阅读更多
http://blog.163.com/michero@126/blog/static/282582932008819101433398/


java类的static块什么时候执行?java 2008-09-19 22:14:33 阅读206 评论0 字号:大中小
java类的static块什么时候执行?

                                      

很多人包括我自己,过去常常以为类是在第一次被装在的时候运行static块,其实不然。

例子:

Class A{  

   static{

      System.out.println("static block invoked!")

   }

}

static块到底在什么时候运行的呢?如果了解JVM原理,我们可以知道,一个类的运行分为以下步骤:

1、装载;2、链接;3、初始化;4、初始化;5,实例化(创建新的实例)

实际上,static块的执行发生在“初始化”的阶段。初始化阶段,jvm主要完成对静态变量的初始化,静态块执行等工作。

下面我们看看执行static块的几种情况:

1、第一次new A()的过程会打印"";因为这个过程包括了初始化

2、第一次Class.forName("A")的过程会打印"";因为这个过程相当于Class.forName("A",true,this.getClass().getClassLoader());

3、第一次Class.forName("A",false,this.getClass().getClassLoader())的过程则不会打印""。因为false指明了装载类的过程中,不进行初始化。不初始化则不会执行static块。
分享到:
评论

相关推荐

    Java static修饰方法

    在Java编程语言中,`static`关键字是一个非常重要的修饰符,它有多种用途,但最常见的是用来修饰类的方法和变量。在这个主题中,我们将深入探讨`static`修饰方法的概念、作用以及它如何影响Java程序的执行。 首先,...

    Java static静态初始快

    在Java编程语言中,`static`关键字扮演着重要的角色,特别是在初始化类的静态成员时。`static`静态初始化块是用来初始化类级别的变量,也就是说,这些变量是属于类本身,而不是类的实例。当我们讨论“Java static...

    java中static属性学习

    ### Java中的Static属性详解 #### 一、引言 在Java编程语言中,`static`关键字扮演着重要的角色。它允许我们创建与类关联而非特定实例关联的数据成员和方法。本文将详细介绍`static`属性的基本概念、静态成员变量...

    java中static作用

    "Java 中 static 作用" static 是 Java 语言中一个关键字,表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态代码块。在 Java 语言中,没有全局变量的概念,但是可以使用 static 来实现...

    Java中的Static块与静态方法

    在Java编程语言中,`static`关键字扮演着至关重要的角色,它被用于声明类成员(如变量、方法)为静态的。静态成员不依赖于任何特定的对象实例,而是与类本身绑定,这意味着无论该类有多少个实例,静态成员只会有一份...

    java static块和构造函数的实例详解

    Java static 块和构造函数的实例详解 Java static 块和构造函数是 Java 编程语言中两个非常重要的概念,它们在 Java 程序的执行过程中扮演着重要的角色。今天,我们将深入探讨 Java static 块和构造函数的实例详解...

    java static学习

    Java static 关键字是 Java 语言中一个非常重要的概念,它可以修饰变量、方法、代码块和导入包等。下面我们将详细介绍 Java 中 static 关键字的使用和特点。 静态变量 Java 中的静态变量是指使用 static 关键字...

    Java static修饰成员变量

    Java中的`static`关键字是编程中的一个重要概念,它在Java语言中扮演着多个角色,尤其在处理类和对象时起到关键作用。`static`关键字可以用来修饰成员变量、方法、代码块以及内部类,每种情况都有其特定的含义和用途...

    Java static方法用法实战案例总结

    Java static 方法用法实战案例总结 Java static 方法是一种特殊的方法,它可以由类名直接调用,而不需要创建对象。static 方法可以用来声明静态属性变量,也可以用来声明方法。在 Java 中,static 方法可以由类名...

    Java中的static关键字

    Java 中的 static 关键字 Java 中的 static 关键字是用于声明类的成员变量和成员方法的,它可以使得变量和方法属于类本身,而不属于某个对象。静态变量也称为类变量,静态方法也称为类方法。静态变量和静态方法可以...

    java static详解.doc

    Java中的`static`关键字是用来声明类级别的成员,包括变量、方法和代码块。它与对象无关,而是直接关联到类本身。以下是对`static`关键字的详细解释: 1. **静态变量(Static Variables)** - 静态变量是属于类的...

    JAVAStatic静态变量.doc

    Java中的`static`关键字是用来声明静态变量或静态方法的,它是面向对象编程中非常关键的一个概念。静态变量属于类,而不是类的实例,这意味着它们在内存中只有一份拷贝,所有的类实例共享这个相同的变量。当我们声明...

    javastatic的使用方法.docx

    Java中的`static`关键字在Java编程中扮演着重要的角色,主要涉及到类方法、类变量以及继承和重写的概念。下面将详细阐述这些知识点。 1. 类方法(静态方法): 当一个方法被声明为`static`时,它就成为类方法。这...

    Java中static变量的几个优缺点

    Java中static变量的几个优缺点 简单介绍static

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

    Java中的`static`关键字是一个非常重要的关键字,它用于声明类级别的成员,包括变量、方法和代码块。`static`关键字的使用有以下四个主要方面: 1. **类属性/类变量**: 类属性(也称为静态变量)是属于类本身的,...

    Java static关键字详细介绍与用法总结

    Java中的`static`关键字是Java编程中非常关键的一个特性,它用于定义类的静态成员,包括静态变量(static fields)和静态方法(static methods)。理解`static`关键字的作用和用法对于编写高质量的Java代码至关重要...

    Java SE编程入门教程 java static final(共24页).pptx

    Java SE编程入门涉及众多基础知识,包括面向对象编程的关键概念,如类、对象、包和方法。其中,`static`和`final`是两个重要的修饰符,它们分别用于定义类的静态成员和常量。 `static`关键字允许我们将成员变量和...

    java中final和static讲解及实例

    java中final和static讲解及实例

    Java中static、this、super、final用法.doc

    在Java编程语言中,`static`、`this`、`super`和`final`是四个非常重要的关键字,它们各自有着特定的用途和含义。 1. **static**: 静态关键字`static`用于声明类级别的变量和方法,即静态变量和静态方法。静态变量...

    谈Java static关键字的用法与好处

    Java中的`static`关键字是Java语言的一个重要特性,它用于定义类级别的成员,包括变量、方法和代码块。下面我们将详细探讨`static`关键字的用法及其带来的好处。 1. **静态变量(Static Variables)** - 静态变量...

Global site tag (gtag.js) - Google Analytics