首页编程java编程java静态变量什么时候初始化 java类中的静态常量是什么时候初始化的

java静态变量什么时候初始化 java类中的静态常量是什么时候初始化的

编程之家 2023-10-14 86次浏览

老铁们,大家好,相信还有很多朋友对于java静态变量什么时候初始化和java类中的静态常量是什么时候初始化的的相关问题不太懂,没关系,今天就由我来为大家分享分享java静态变量什么时候初始化以及java类中的静态常量是什么时候初始化的的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

java静态变量什么时候初始化 java类中的静态常量是什么时候初始化的

Java的静态块和初始化块分别何时执行有什么区别

静态初始化块:当类第一次加载时执行。

非静态初始化块:非静态初始化块会在构造函数执行时,且在构造函数主体代码执行之前被执行。

区别如下:

java静态变量什么时候初始化 java类中的静态常量是什么时候初始化的

1、执行次数不同

静态块只执行一次,初始化块可以执行多次。

2、作用不同

java静态变量什么时候初始化 java类中的静态常量是什么时候初始化的

静态初始化块仅能初始化类变量,即static修饰的数据成员。

非静态初始化块可以初始化类的实例变量。

扩展资料:

使用Java静态代码块注意事项:

1、它是随着类的加载而执行,只执行一次,并优先于主函数。具体说,静态代码块是由类调用的。类调用时,先执行静态代码块,然后才执行主函数的。

2、静态代码块其实就是给类初始化的,而构造代码块是给对象初始化的。

3、静态代码块中的变量是局部变量,与普通函数中的局部变量性质没有区别。

4、一个类中可以有多个静态代码块。

5、对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始化块)>构造器。

java类中的静态常量是什么时候初始化的

我们知道一个类(class)要被使用必须经过装载,连接,初始化这样的过程。下面先对这三阶段做一个简单的描述,之后会结合一个简单的例子来说明java中类的初始化过程。

在装载阶段,类装载器(Bootstrap ClassLoader或者用户自定义的ClassLoader)把编译形成的class文件载入内存,创建类相关的Class对象,这个Class对象封装了我们要使用的类的类型信息。

连接阶段又可以分为三个子步骤:验证、准备和解析。

验证就是要确保java类型数据格式的正确性,并适于JVM使用。

准备阶段,JVM为静态变量分配内存空间,并设置默认值,注意,这里是设置默认值,比如说int型的变量会被赋予默认值0。在这个阶段,JVM可能还会为一些数据结构分配内存,目的是提高运行程序的性能,比如说方法表。

解析过程就是在类型的常量池中寻找类、接口、字段和方法的符号引用,把这些符号引用替换成直接引用。这个阶段可以被推迟到初始化之后,当程序运行的过程中真正使用某个符号引用的时候再去解析它。

类会在首次被“主动使用”时执行初始化,为类(静态)变量赋予正确的初始值。在Java代码中,一个正确的初始值是通过类变量初始化语句或者静态初始化块给出的。而我们这里所说的主动使用包括:

1.创建类的实例

2.调用类的静态方法

3.使用类的非常量静态字段

4.调用Java API中的某些反射方法

5.初始化某个类的子类

6.含有main()方法的类启动时

初始化一个类包括两个步骤:

1、如果类存在直接父类的话,且直接父类还没有被初始化,则先初始化其直接父类

2、如果类存在一个初始化方法,就执行此方法

Java类的初始化是什么时候

我们知道一个类(class)要被使用必须经过装载,连接,初始化这样的过程。下面先对这三阶段做一个简单的描述,之后会结合一个简单的例子来说明java中类的初始化过程。

在装载阶段,类装载器(Bootstrap ClassLoader或者用户自定义的ClassLoader)把编译形成的class文件载入内存,创建类相关的Class对象,这个Class对象封装了我们要使用的类的类型信息。

连接阶段又可以分为三个子步骤:验证、准备和解析。

验证就是要确保java类型数据格式的正确性,并适于JVM使用。

准备阶段,JVM为静态变量分配内存空间,并设置默认值,注意,这里是设置默认值,比如说int型的变量会被赋予默认值0。在这个阶段,JVM可能还会为一些数据结构分配内存,目的是提高运行程序的性能,比如说方法表。

解析过程就是在类型的常量池中寻找类、接口、字段和方法的符号引用,把这些符号引用替换成直接引用。这个阶段可以被推迟到初始化之后,当程序运行的过程中真正使用某个符号引用的时候再去解析它。

类会在首次被“主动使用”时执行初始化,为类(静态)变量赋予正确的初始值。在Java代码中,一个正确的初始值是通过类变量初始化语句或者静态初始化块给出的。而我们这里所说的主动使用包括:

1.创建类的实例

2.调用类的静态方法

3.使用类的非常量静态字段

4.调用Java API中的某些反射方法

5.初始化某个类的子类

6.含有main()方法的类启动时

初始化一个类包括两个步骤:

1、如果类存在直接父类的话,且直接父类还没有被初始化,则先初始化其直接父类

2、如果类存在一个初始化方法,就执行此方法

注:初始化接口并不需要初始化它的父接口。

java static方法什么时候执行

当一个方法或者变量需要初始化加载,或者是经常被调用的时候可以加上static。

用static修饰的方法可以用类名直接调用,不用的一定要先实例化一个对象然后才可以调用

比如 person这个类里面有一个方法public static add(){}

那么可以直接用person类调用 person.add();当然也可以用下面的方法先出一个对象在调用也是可以

如果这个方法前面没有static比如 public add(){}

那么先要person p=new person();

然后用p.add();

类加载器在加载这个类的时候就已经实例化了这个类。

坏处:初始化加载,比较占内存,所以不经常用的方法,不建议加此关键字。

好了,关于java静态变量什么时候初始化和java类中的静态常量是什么时候初始化的的问题到这里结束啦,希望可以解决您的问题哈!

java时间戳是什么意思?java时间戳是什么 洪都拉斯国土面积与人口 洪都拉斯国土面积与人口?