`
QI程序猿
  • 浏览: 17738 次
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java静态代码块加载说明

 
阅读更多

此文参考自:http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796209.html

 

首先是几个静态概念的分析:

 

静态代码块:一般情况下,有些代码在项目启动时就要执行,需要使用静态代码块,这种代码是主动执行的。

 

静态方法:在项目启动的时候初始化,在不创建对象的情况下,其他程序来调用,被动执行,静态方法在类加载的时候,就已经加载。在静态方法中,不能直接访问其非静态成员,静态方法不能以任何方式引用this和super关键字。

 

静态变量:静态变量是属于整个类的变量而不是属于某个对象的变量,不能把任何方法内的变量声明为静态

 

类装载的步骤:

类装载器把一个Java类装入虚拟机中,需要三个步骤来完成:装载、链接和初始化,其中链接又可以拆分为检验、准备和解析三步,除了解析外,其他步骤都是严格按照顺序完成的,各个步骤的主要工作如下。

 

装载:查找和导入类或接口的二进制数据;

链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的;

校验:检查导入类或接口的二进制数据的正确性;

准备:给类的静态变量分配并初始化存储空间;

解析:将符号引用转成直接引用;

初始化:激活类的静态变量的初始化Java代码和静态代码块。

初始化类中属性是静态代码块的常用用途之一,但只能使用一次。

 

对象的初始化顺序,首先执行父类静态的内容,父类静态的内容执行完毕后,接着执行子类静态的内容,当子类的静态内容执行完毕之后,再去看父类有没有非静态代码块,如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。子类的非静态代码块执行完毕再去执行子类的构造方法。总之一句话,静态代码块内容先执行(父类比子类先执行),接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法。

分享到:
评论

相关推荐

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

    在Java编程中,静态代码块(Static Block)和类加载器(Class Loader)是两个重要的概念,它们在软件开发中有着广泛的应用。本案例聚焦于如何利用静态代码块结合类加载器来高效地获取资源文件,尤其是属性配置文件。...

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

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

    Java静态代码块加载驱动代码实例

    Java静态代码块加载驱动代码实例 Java静态代码块是一种特殊的代码块,它可以在类加载时被执行,该代码块只能被加载一次,无论new多少个对象。静态代码块通常用来加载配置文件、初始化操作等。 在Java中,静态代码...

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

    这说明静态代码块确实是在类加载时自动执行的。 非静态代码块 非静态代码块是指没有使用静态关键字修饰的代码块,属于实例级别的代码块。它的特点是:在创建对象时自动执行的,每个对象的创建都会执行一次非静态...

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

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

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

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

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

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

    静态代码块

    静态代码块是Java语言中的一个重要概念,主要用于初始化类级别的数据成员或执行一些仅需执行一次的操作。静态代码块通过`static`关键字来定义,在类加载时执行,且只执行一次。这与实例构造器或普通代码块不同,后者...

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

    这里我们将深入探讨Java中的普通代码块(实例初始化块)和静态代码块的执行顺序,并通过实例来阐述这一概念。 首先,我们需要明白两种类型的代码块: 1. 静态代码块(Static Block):这些代码块在类加载时执行,...

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

    静态代码块是在类加载时执行的一段代码,它不依赖于类的实例,而是与类本身相关联。静态代码块通常用来初始化类级别的变量,或者执行一些仅需执行一次的设置操作。静态代码块的执行顺序取决于它们在源码中的出现顺序...

    Java基础之代码块.docx

    静态块是指写在类中方法外的静态代码块,这种代码块的执行时机是类加载时。例如: ```java public class Demo01 { static { System.out.println("这是静态代码块"); } } ``` 在上面的代码中,静态块是写在 `Demo...

    关于Java中静态代码块的执行浅析

    Java中的静态代码块是一种特殊的代码块,它们是在类加载过程中执行的,而不是在对象创建时执行的。静态代码块的执行是自动的,且只执行一次。在Java中,静态代码块的执行是static关键字的结果。 静态代码块的执行...

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

    Java编程语言中有三种类型的代码块,它们分别是普通代码块、构造代码块和静态代码块,每种都有其特定的用途和执行顺序。 1. **普通代码块**: 普通代码块(也称为局部代码块)是在方法或者类的成员变量声明之间...

    Java:静态代码块和构造函数执行顺序

     1 静态变量,静态代码块(类加载时执行,类不加载不执行)  2 实例变量,实例代码块(创建对象时才执行,不创建对象不执行)  3 构造函数,(创建对象时执行完2后再执行构造函数,不管构造函数是public还是private...

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

    静态块是Java类中用于初始化静态变量的代码块。它们在类加载时执行,且只执行一次。无论创建多少个类的实例,静态块只会被执行一次。这是因为在Java中,类的静态成员是与类相关的,而非类的实例。 ```java public ...

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

    Java代码块的加载顺序是按照静态代码块、构造代码块、局部代码块的顺序加载的。 (一)静态代码块的加载 静态代码块是在类加载时执行的,只加载一次,用于对类进行一些初始化。 (二)构造代码块的加载 构造代码...

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

    Java中的静态代码块是类级别的代码,它在类被加载到JVM(Java虚拟机)时执行,且只执行一次。这些代码块主要用于初始化类级别的变量,即静态变量。与静态方法不同,静态代码块是自动执行的,而静态方法需要通过类名...

    java中静态代码块与构造方法的执行顺序判断

    在Java编程语言中,了解静态代码块和构造方法的执行顺序是至关重要的,尤其是在处理类的初始化和对象的创建时。下面将详细解释这些概念及其执行逻辑。 首先,静态代码块(也称为静态初始化器)是由`static`关键字...

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

    在Java编程语言中,类的初始化过程涉及到几个关键的概念,包括静态代码块、构造代码块和构造方法。这些概念在创建对象和管理类的状态时起着至关重要的作用。以下是关于这三个概念的详细解释: 1. **静态代码块**: ...

Global site tag (gtag.js) - Google Analytics