`
royzhou1985
  • 浏览: 250551 次
  • 性别: 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静态初始化块和对象初始化块

    NULL 博文链接:https://yuu1987.iteye.com/blog/1113142

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

    static所声明的变量在Java中有一个初始化的先后顺序,带着这个问题接下来我们就来进行Java中static静态变量的初始化完全解析:

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

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

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

    注意:本文所说的全局变量指的是 variables with static storage,措词来自 c++ 的语言标准文档。  什么时候初始化 ...  static initialization: 静态初始化指的是用常量来对变量进行初始化,主要包括 zero init

    php 静态变量的初始化

    } } 但是php中并没有一个类似java中的静态构造器/静态块的东西,就没有合适的时机对其进行初始化了。 对于共有的成员还有办法解决,例如: class A { static public $child; } A::$child = new B()

    g++中的局部静态变量的初始化机制及线程安全

    g++中的局部静态变量的初始化机制及线程安全 在 C++ 中,局部静态变量的初始化机制是一种特殊的机制,它可以延迟初始化,直到第一次使用该变量时。这是一种 lazy initialization 机制,能够避免在程序启动时进行...

    一个简单的static类型的初始化问题

    都知道用static修饰的变量是静态数据,此时变量的地址在静态区存放,因此在函数结束时,该地址中的值不被释放,除非主函数结束。因此每次访问该地址所指向的变量,都会有上次的值。但是会出现一个问题......

    C++ 怎么让静态变量只初始化一次

    童鞋们在学习C++的时候,往往只是按照书本上的原文去强行记忆各种特性,比方说,静态变量只初始化一次。你心中一定在默念:一定要记住,static只会初始化一次云云,希望自己能够记住。告诉你,你为什么总是记不住,...

    proposal-class-static-block:ECMAScript类静态初始化块

    类static块提供了一种在类定义评估期间执行其他静态初始化的机制。 这不打算替代公共字段,因为它们为静态分析工具提供了有用的信息,并且是装饰器的有效目标。 相反,这旨在扩大现有用例并启用该提案当前未处理的...

    C#中static静态变量的用法实例

    本文实例讲述了C#中static静态变量的用法。分享给大家供大家参考。具体如下: 使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员static修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,...

    有关static block静态代码块和单态设计模式

    静态代码块(static block ),不包含在任何方法体中当类被载入时,自动执行静态代码块,且只被执行一次经常用于类属性的初始化。 这是网上通行的关于静态代码块的定义。 在Java中,类装载器把一个类装入Java虚拟机...

    C++类的静态成员初始化详细讲解

    记住:通常静态数据成员在类声明中声明,在包含类方法的文件中初始化.初始化时使用作用域操作符来指出静态成员所属的类.但如果静态成员是整型或是枚举型const,则可以在类声明中初始化!!! 代码如下:#include ...

    C++ 静态成员的类内初始化详解及实例代码

    C++ 静态成员的类内初始化详解及实例代码 一般来说,关于C++类静态成员的初始化,并不会让人感到难以理解,但是提到C++ 静态成员的”类内初始化”那就容易迷糊了。 我们来看如下代码: //example.h #include #...

    java编程思想-初始化与清理

    java编程思想-初始化与清理了解this之后,你就能更全面地理解“静态(static)方法”的含义。静态方法就是没有this的方法。在“静态方法”的内部不能调用“非静态方法”,反过来倒是可以的。而且你可以在没有创建...

    java学习之神奇初始化

    如果有static,即静态成员定义,首先初始化static的变量,如,在类Cups中c3在c2前面,可是在输出的结果中,你可以发现,c2是在c3前执行的,这就是因为,所有的static都在第一时间被初始化。

    Java中静态属性,静态方法和静态初始化器

    static称为静态修饰符,它可以修饰类中的属性和方法。  1.静态属性  被static修饰的属性称为静态属性,这类属性一个本质的特点是:它们是类的属性,而不属于任何一个类的具体对象。换句话说,对于该类的任何一...

    快速了解C语言静态关键字static的作用

    1、用静态关键字static修饰的局部变量,在编译的过程中,会在数据区为该变量开辟空间,并对其进行初始化,如果代码中未对其进行初始化,则系统默认初始化为0 2、用static修饰的局部变量,会延长局部变量的寿命,超出...

    【Java高频面试题】–类的初始化过程以及实例的初始化过程

    1.1 类的初始化过程 要创建一个类的实例,必须加载和初始化该类。 main()方法所在的类,会被优先加载并初始化 子类初始化前,会先加载并初始化它的父类 初始化一个类,其实质上就是执行了()方法 ()方法包含了,静态...

    【Java语言基础】初始化块

    文章目录【Java语言基础】初始化块使用初始化块静态初始化块总结代码 【Java语言基础】初始化块 初始化块又称为代码块。属于类中的第四大成员。本质上是一个方法,它也有方法体,但没有方法名,没有参数,没有返回,...

Global site tag (gtag.js) - Google Analytics