优秀的编程知识分享平台

网站首页 > 技术文章 正文

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

nanyue 2024-07-29 01:07:01 技术文章 4 ℃

其实,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是没有值的,也就是不能直接使用。

最近发表
标签列表