您的位置 首页 java

在Java中变量总共会初始化多少次?

其实, Java 虚拟机在类加载中会有两次机会为变量赋予初始值,分别为类加载中的准备阶段和初始化阶段。

准备阶段:为类变量赋予初值,也就是零值。

初始化阶段:由程序控制,也就是变量为多少,是什么由程序员控制,比如 int a=1。

虽然, jvm 会给变量有两次机会赋予初值的机会,但并不是每一个变量都能拥有两次初始化的机会。

类的成员变量会有准备这一阶段,也就是说有两次初始化的机会。比如当在类中定义类成员int a=1,在准备阶段jvm给a赋予0值,在初始化阶段赋予1值。所以即使程序员没有给a赋予1值,变量a也是可以直接使用的。

局部变量 是没有准备阶段这一说法的,所以不要以为任何情况下int默认值都为0, boolean 变量默认值都为false。当定义一个局部变量时,比如在方法中定义int a,既程序员没有给变量a赋值,这种情况下,a是局部变量,所以没有准备阶段,因此不能赋予0值,又因为程序员没有为a赋予初值,所以变量a是没有值的,也就是不能直接使用。

文章来源:智云一二三科技

文章标题:在Java中变量总共会初始化多少次?

文章地址:https://www.zhihuclub.com/195783.shtml

关于作者: 智云科技

热门文章

网站地图