java静态快(java静态代码块和静态方法执行顺序)
华为云服务器特价优惠火热进行中! 2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。
合作流程: |
今天给各位分享java静态快的知识,其中也会对java静态代码块和静态方法执行顺序进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
微信号:cloud7591如需了解更多,欢迎添加客服微信咨询。
复制微信号
本文目录一览:
JAVA中 静态块的作用
我先说一下静态块吧,下面就是一个静态块,
static
{
}
静态块的特点是在类加载的时候就执行,先说一下类加载,一个程序要想运行,首先要把代码加载到内存中对吧?然后才能去和CPU交流,这是冯诺依曼计算机规定的。Java也是一样,Java的.class字节码文件要想执行,首先也要加载到内存,由类加载器把字节码文件的代码加载到内存中,这一步就叫类加载,这是首先要进行的。
public
class
Test
{
static
{
System.out.println("我是静态块");
}
}
当创建Test类的一个对象的时候,比如new
Test()
,是这样,首先是类加载,然后才能new对象,静态块在类加载的时候就执行了,这就说明静态块在new对象之前就会执行,而且一个类在第一次被使用的时候会被加载,然后在整个应用程序的生命周期当中不会再次被加载了,就加载这一次,所以这就说明,静态块就执行一次,不会执行第二遍!
public
class
Test
{
public
Test()
{//
构造方法
System.out.println("我是构造方法,创建对象的时候我会执行,我执行完,对象就造出来了");
}
static
{
System.out.println("我是静态块,类加载的时候我就执行了,而且只执行这一次");
}
}
然后这样:
new
Test();
new
Test();
你会发现首先打印出静态块的信息,然后才打印出构造方法信息,然后再次new
Test();的时候,只打印出了构造方法的信息,这个例子证明了我上面说的是对的!
这就是静态块,我说完了,至于你说的
静态块中初始化Map。
初始化这几个字很难讲他的意思,意思包括
把一些内容设为默认状态、把没准备的准备好、在什么什么之前就怎么怎么样、将变量赋为默认值,等等,这个不能精确的说,只能就事说事,下面就可以说是在静态块中初始化Map,
public
class
Test
{
private
static
Map
m;
static
{
m
=
new
HashMap();
}
}
就说道这儿,楼主
看了一个帖子
写的是初始化Map的,
如果还有疑问
不如把地址贴出来,大家也好帮你,就光说初始化Map,这个问的太叫人没法回答了。

java静态块和构造器执行时间的区别
java:静态块和构造器执行时间的区别。
静态块:是一个java类中的static所包含的一段程序。主要是用来在程序中初始化一些常量,并且这些常量在这个类中是全局变量。
例如:
static{
System.out.println("father");
}
静态块在程序实例化这个类的时候调用,而且只执行一次,就是说在这个类实例化后,这个静态块已经执行过,那么它将不会再次执行。在所有的类中,静态块总是先从父级开始执行,从上网下执行所有的静态块。
构造器:用来开辟内存空间供实例化这个类所使用。
如:public Grand(){
System.out.println("grandfather constructor");
}
构造器在程序中执行的时间也是在程序实例化这个类的时候调用,他与静态块不同点在他每实例化一次就执行一次,而且他总是在静态块执行之后执行,豫静态块相同的地方都是先从父级开始执行,从上往下执行所有的构造器。
Java的静态块和初始化块分别何时执行?有什么区别?
静态初始化块:当类第一次加载时执行。
非静态初始化块:非静态初始化块会在构造函数执行时,且在构造函数主体代码执行之前被执行。
区别如下:
1、执行次数不同
静态块只执行一次,初始化块可以执行多次。
2、作用不同
静态初始化块仅能初始化类变量,即static修饰的数据成员。
非静态初始化块可以初始化类的实例变量。
扩展资料:
使用Java静态代码块注意事项:
1、它是随着类的加载而执行,只执行一次,并优先于主函数。具体说,静态代码块是由类调用的。类调用时,先执行静态代码块,然后才执行主函数的。
2、静态代码块其实就是给类初始化的,而构造代码块是给对象初始化的。
3、静态代码块中的变量是局部变量,与普通函数中的局部变量性质没有区别。
4、一个类中可以有多个静态代码块。
5、对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)(变量、初始化块)构造器。
java中静态代码块的作用跟用法
Java静态代码块的作用:Java静态代码块中的代码会在类加载JVM时运行,且只被执行一次,也就是说这些代码不需要实例化类就能够被调用。一般情况下,如果有些代码必须在项目启动的时候就执行的时候,就需要使用静态代码块。
Java静态代码块的用法:一个类可以使用不包含在任何方法体中的静态代码块,当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化。例如:
static
{
int a=0;
}
Java中静态块的用法
结果:
10
首先,static模块在类加载中首先会被加载且只会被加载一次,构造函数则可以多次加载。
加载顺序为:static模块、构造方法
主方法(程序入口)main方法中,new A();,所以会去加载static{}。在static中又一次new A,所以会调用其构造方法public A() {},此时打印出来的内容是 i=0 j=0,二者都是初始化的值。
static模块加载之后,会去加载其构造方法。此时i在static中赋值为10,j不变,所以在构造方法的第二次调用中打印的是i=10 j=0。
关于java静态快和java静态代码块和静态方法执行顺序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
