「java静态变量初始化」java静态变量什么时候初始化
本篇文章给大家谈谈java静态变量初始化,以及java静态变量什么时候初始化对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java 静态数据初始化
- 2、java类中的静态变量是什么时候初始化的
- 3、Java的静态块和初始化块分别何时执行?有什么区别?
- 4、高级Java开发中什么是静态初始化器?
- 5、java 静态变量初始化为什么要用静态初始化
java 静态数据初始化
从主类public class StaticInitialization 中的开始main函数开始。
在初始化对象时,开始 静态数据的初始化
譬如:
执行完
public class StaticInitialization {
public static void main(String[] args) {
System.out.println(
"Creating new Cupboard() in main");
后,然后
执行new Cupboard();这段代码
这时,程序就会跳到Cupboard这个类中,当实例化Cupboard这个类的对象的时候,Cupboard这个类的里面静态数据也同时被处理。
剩下的代码都一样。
java类中的静态变量是什么时候初始化的
静态方法是你手动调用的时候执行。
静态变量与类一起加载,最优先的。
然后是,静态初始化器(只初始化静态成员变量)。
然后是,属性初始化(只初始化非静态成员变量)。
最后是,构造函数(常用的,你懂的)...
记住:先是静态,然后是非静态。
Java的静态块和初始化块分别何时执行?有什么区别?
静态初始化块:当类第一次加载时执行。
非静态初始化块:非静态初始化块会在构造函数执行时,且在构造函数主体代码执行之前被执行。
区别如下:
1、执行次数不同
静态块只执行一次,初始化块可以执行多次。
2、作用不同
静态初始化块仅能初始化类变量,即static修饰的数据成员。
非静态初始化块可以初始化类的实例变量。
扩展资料:
使用Java静态代码块注意事项:
1、它是随着类的加载而执行,只执行一次,并优先于主函数。具体说,静态代码块是由类调用的。类调用时,先执行静态代码块,然后才执行主函数的。
2、静态代码块其实就是给类初始化的,而构造代码块是给对象初始化的。
3、静态代码块中的变量是局部变量,与普通函数中的局部变量性质没有区别。
4、一个类中可以有多个静态代码块。
5、对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)(变量、初始化块)构造器。
高级Java开发中什么是静态初始化器?
静态初始化器是由关键字static引导的一对大括号括起的语句组。它的作用与类的构造函数有些相似,都用来完成初始化的工作,但是静态初始化器与构造函数有三点根本的不同:
(1)构造函数是对每个新创建的对象初始化,而静态初始化器是对每个类进行初始化;
(2)构造函数是在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载入内存时由系统调用运行的;
(3)不同于构造函数,静态初始化器不是方法,没有方法名、返回值和参数列表。
package com.text.java;
/**
* p class="detail"
* 功能:静态初始化器
* static{ 和 }之间的代码被称为静态初始化器。它只有在第一次加载类时运行。
* 只有静态变量才可以在静态初始化器中进行访问。
* 虽然创建了多个实例,但静态初始化器只运行一次。
* /p
* @ClassName: StaticUtil
* @version V1.0
* @date 2016-8-10
* @author dmw
*/
public class StaticUtil {
static int count;
static{
System.out.println("类初始化静态加载++++");
System.out.println("加载次数"+count);
count++;
}
public static void main(String[] args) {
StaticUtil temp1=new StaticUtil();
StaticUtil temp2=new StaticUtil();
StaticUtil temp3=new StaticUtil();
// 输出: 类初始化静态加载++++
// 加载次数0
}
}
java 静态变量初始化为什么要用静态初始化
在java中用final修饰符修饰的变量表示不可以被二次赋值,且系统不会给其赋默认值。 如果单纯只是final变量,可以在定义的时候就赋默认值,也可以在构造方法中赋默认值。 但是如果同时用final static 修饰变量,因为static变量属于类而不属于对象,且在调用构造方法之前static 变量就已经被系统给赋默认值。而相应的final static 变量就只能在定义的时候就初始化,否则既无法在构造方法中初始化,系统又不会赋默认值,相当于这个变量被定义出来是毫无用处的。 因此java中final static变量必须初始化
java静态变量初始化的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java静态变量什么时候初始化、java静态变量初始化的信息别忘了在本站进行查找喔。