高级Java开发中什么是静态初始化器?
1个回答
2021-04-12 · 学动漫、设计、电竞、电商、短视频、软件等
关注
展开全部
静态初始化器是由关键字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
}
}
(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
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询