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

static{} 静态初始化

    博客分类:
  • Java
 
阅读更多
可以在静态块里面做一些只需要执行一次的操作。

比如:初始化配置文件、初始化连接池等等。

不管实例化了多少对象,静态块中的代码仅会在第一次实例化对象前执行,以后再实例化对象就不会再执行了。

public class Test {
    
    static {
        System.out.println("static block");
    }

    public Test() {
        System.out.println("constructor");
    }

    {
        System.out.println("block");
    }

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


在调用native函数时可以用到
比如
static {
	try {
		System.loadLibrary("DLL文件");
	} catch (Exception e) {
		System.out.println("加载DLL失败:" + e.getMessage());
	}
}


分享到:
评论
1 楼 royzhou1985 2009-02-23  
public class Test {
	static Test tt = new Test();

	static int s1;

	static int s2 = 5;

	Test() {
		s1++;
		s2++;
	}

	public static void main(String[] args) {
		System.out.println("s1=" + s1 + " s2=" + s2);

	}
}

static 变量是类加载时给他分配空间,并不附值.
然后new出了对象,调用了构造方法,这时候s1=1,s2=1.
然后再静态给s2附值为2.

相关推荐

    Java static静态初始快

    当我们讨论“Java static静态初始化块”时,我们关注的是如何在类加载时执行特定的初始化代码。 首先,让我们理解`static`关键字的基本概念。`static`在Java中用于声明类变量或静态方法,这些变量和方法不需要创建...

    Java静态初始化块和对象初始化块

    这里我们将深入探讨两种类型的初始化块:静态初始化块(Static Initializer Block)和对象初始化块(Instance Initializer Block)。这两种初始化块在创建类实例或加载类时分别扮演着不同的角色。 **静态初始化块**...

    类的static,const,static const,const static成员的初始化

    * 初始化在类体外进行,而前面不加 static,以免与一般静态变量或对象相混淆。 * 初始化时不加该成员的访问权限控制符 private,public 等。 * 初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的...

    Java中static静态变量的初始化完全解析

    Java中的静态变量(static变量)是在类加载时初始化的,而不是在对象创建时。静态变量属于类,而不属于任何特定的对象,因此它们是共享的,所有类实例都可以访问。了解静态变量的初始化顺序对于理解和避免潜在的编程...

    学习java静态数据初始化.doc

    静态初始化通过`static`关键字标记,可以用于声明静态变量、静态方法或静态代码块。 #### 二、静态初始化的过程 1. **静态初始化的时机**: - 当类首次被加载到JVM中时。 - 当第一次访问该类的静态成员(字段或...

    对象初始化流程梳理对象初始化流程梳理

    Java中的对象初始化流程是编程实践中一个非常重要的概念,它涉及到类加载、静态初始化块、实例初始化块、构造器等多个方面。下面将详细解释这个过程。 首先,对象初始化流程的起点是程序的入口点,即`main`方法。当...

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

    System.out.println("父类--静态初始化块"); } // 初始化块 { System.out.println(p_Field); System.out.println("父类--初始化块"); } // 构造器 public Parent() { System.out.println(...

    C++全局变量初始化的一点总结

    首先,全局变量的初始化分为两个阶段:静态初始化(static initialization)和动态初始化(dynamic initialization)。静态初始化发生在程序加载时,主要针对那些可以用常量表达的初始化,例如零初始化(zero ...

    java中类的初始化顺序

    3. **静态初始化块(Static Initialization Blocks)**:在类加载时执行,仅执行一次。 4. **实例初始化块(Instance Initialization Blocks)**:在每个对象创建时执行。 5. **构造方法(Constructors)**:用于...

    java面试题-类的初始化顺序.doc

    1. 首先,执行父类的静态初始化块,打印出 "父类--静态变量" 和 "父类--静态初始化块"。 2. 接着,执行子类的静态初始化块,打印出 "子类--静态变量" 和 "子类--静态初始化块"。 3. 然后,创建子类实例,首先执行...

    Static静态变量的应用(VB6.0代码编写)

    总的来说,Static静态变量是VB6.0编程中一个强大的工具,合理利用可以解决许多实际问题,但同时也需要谨慎处理,以确保代码的健壮性和效率。在实际编程中,我们需要根据具体需求权衡是否使用Static变量,以及如何...

    java数组初始化详解

    静态初始化是指在定义数组时同时初始化数组的值,例如:`int[] a = {1, 2, 3};`。 动态初始化是指在定义数组时不初始化数组的值,而是在后续的代码中初始化数组,例如:`int[] a; a = new int[5];`。 默认初始化 ...

    static静态局部变量的妙用

    ### static静态局部变量的妙用 #### 一、引言 在软件开发和程序设计领域,合理运用各种语言特性能够显著提升代码的质量与效率。其中,`static`关键字就是一个非常实用的功能,在C/C++等语言中有着广泛的应用场景。...

    Java初始化块Java初始化块.doc

    根据是否带有 `static` 关键字,初始化块分为两种类型:普通初始化块(非静态初始化块)和静态初始化块。 1. 普通初始化块(非静态初始化块) 普通初始化块在创建对象时会被隐式调用,并且在执行构造器之前运行。...

    Java中的Static块与静态方法

    静态块,也被称为静态初始化器,是在类加载时自动执行的一段代码,用于初始化类的静态变量或执行一次性的设置工作。静态块可以包含任意的Java语句,并且会在类的任何实例被创建之前执行。与静态方法不同,静态块不是...

    php 静态变量的初始化

    然而,如果你想要将静态变量初始化为一个对象,PHP并不支持像Java那样的静态构造器或静态初始化块。在这种情况下,你需要在代码的某个时刻显式地调用一个方法来完成初始化。例如: ```php class A { static ...

    static静态变量使用@Value注入方式.md

    ### static静态变量使用@Value注入方式 #### 一、引言 在Java开发中,特别是基于Spring框架的应用程序中,开发者经常会遇到需要为类中的成员变量注入外部配置值的情况。Spring框架提供了多种注入机制,其中`@Value...

    java程序初始化顺序

    - 静态初始化块(static{}):如果类中存在静态初始化块,该块的代码会在类加载后的准备阶段执行,用于初始化静态变量或执行其他静态设置任务。 - 静态变量的赋值:接着,静态变量会被赋予它们的初始值,这可以是...

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

    ### Java 类中静态域、块,非静态域、块,构造函数的初始化顺序 #### 一、概述 在 Java 编程语言中,类的初始化顺序对于理解程序的行为至关重要。特别是当涉及到静态域(静态变量)、非静态域(实例变量)、静态块...

Global site tag (gtag.js) - Google Analytics