java中的静态初始化块

Java 中可以通过初始化块进行数据赋值。如:

在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用 static 修饰初始化块,就称为静态初始化块。

需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量

我们来看一段代码:

运行结果:

通过输出结果,我们可以看到,程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。

时间: 2024-10-12 11:40:36

java中的静态初始化块的相关文章

java中的静态代码块,构造代码块,构造函数,普通代码块

java中的静态代码块,构造代码块,构造函数,普通代码块 静态代码块: 格式: public class Test1{ static{ System.out.println("这是一个静态代码块");  } } 说明: 1.静态代码块在类加载时也就是项目启动时运行并且只运行一次相当于main函数,有多个静态代码块从上往下依次执行,他是一种主动运行的机制. 2.静态代码块不能存在于任何方法中 构造代码块 格式: public class Test2{ { System.out.print

关于Java中的静态代码块

一.静态代码块 ①特点:随着类的加载而执行,且只执行一次,不管创建了多少次对象实例,这个类中的静态代码块只会在第一次创建类实例或者直接使用类名调用静态方法时执行一次,且若第一次是使用类名调用静态方法,则会先执行静态代码块后才会执行相应方法.(这也说明创建类实例或者使用类名调用静态方法时,类都会被加载进内存).如果是StaticCode s=null;这样的声明语句,类是不会被加载入内存中的. ②功能:用于给类初始化(不是对象) 二.静态方法:①若只是创建含有静态方法的类的对象而没有调用静态方法,

Java中的静态代码块和构造代码块

最近一在回顾Java中的一些知识,这里跟大家一起学习一下静态代码块,和构造代码块. 首先,代码就是巴拉巴拉一些定义呀,赋值啊,运算的一些java代码,用两个大括号括起来,就变成了神奇的代码块 { a=3; } static{ b=4; } 就像上面那个样子. 括号加了static修饰就变成了静态代码块,大家记住哦,只要加了static这个东西只后,后面那个东东就是静态的,而且只能操作静态的东东. 比如静态方法,静态变量,静态指针,当然java里没有指针. 然后我用了一个小代码去理解这两个概念,上

java中的静态代码块、构造代码块、普通代码块和同步代码块总结

java中的4中代码块总结如下: * 加了static的是静态代码块,在类中写了一对{}是构造代码块,在方法中写了一对{}是普通代码块, * java中还有一种代码块是同步代码块,常用在多线程中, synchronized关键字, * 同步代码块格式是:synchronized(同步对象){} * 静态代码块 先于构造代码块 先于构造方法执行 * 静态代码块 先于普通代码块 先于构造方法执行 * 构造代码块和普通代码块按照程序逻辑顺序执行 package 面试题; class HelloA{ p

Java 中的 static 使用之静态初始化块

Java 中可以通过初始化块进行数据赋值.如: 在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块.如果使用 static 修饰初始化块,就称为静态初始化块. 需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量. 而普通初始化块只要有创建一个实例(即new一次),就执行一次. 我们来看一段代码: 运行结果: 通过输出结果,我们可以看到,程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行

java中初始化块、静态初始化块和构造方法

(所谓的初始化方法init()是另一回事, 在构造方法之后执行, 注意不要混淆) 在Java中,有两种初始化块:静态初始化块和非静态初始化块.它们都是定义在类中,用大括号{}括起来,静态代码块在大括号外还要加上static关键字. 非静态初始化块(构造代码块):作用:给对象进行初始化.对象一建立就运行,且优先于构造函数的运行.与构造函数的区别:非静态初始化块给所有对象进行统一初始化,构造函数只给对应对象初始化.应用:将所有构造函数共性的东西定义在构造代码块中. 静态初始化块:作用:给类进行初始化

static静态初始化块

Java 中可以通过初始化块进行数据赋值.如: 在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块.如果使用 static 修饰初始化块,就称为静态初始化块. 需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量. 我们来看一段代码: 运行结果: 通过输出结果,我们可以看到,程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法.由于静态初始化块只在类加载时执行一次,所以当再次创建对

Java中的初始化顺序(静态成员、静态初始化块,普通成员、普通初始化块、构造函数)

本文链接    http://blog.csdn.net/xiaodongrush/article/details/29170099 参考文章     http://my.oschina.net/leoson/blog/103251 1. 一个类中的初始化顺序 (静态变量.静态初始化块)=>(变量.初始化块.构造器). 2. 两个具有继承关系类的初始化顺序 父类的(静态变量.静态初始化块)=> 子类的(静态变量.静态初始化块)=> 父类的(变量.初始化块.构造器)=> 子类的(变量

Java初始化顺序(静态变量、静态初始化块、实例变量、实例初始化块、构造方法)

1.执行顺序 1.1.一个类中的初始化顺序 (静态变量.静态初始化块)=>(变量.初始化块.构造器). 1.2.两个具有继承关系类的初始化顺序 父类的(静态变量.静态初始化块)=> 子类的(静态变量.静态初始化块)=> 父类的(变量.初始化块.构造器)=> 子类的(变量.初始化块.构造器). 示例如下:(结果见注释) 1 class A { 2 public A() { 3 System.out.println("Constructor A."); 4 } 5