专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 问答 技术问答 成员变量、局部变量是否可以不初始化?

成员变量、局部变量是否可以不初始化?

西柚已回答

Java,永不止步。

成员变量可以不用初始化:原因如下

原因是因为成员变量是属于实例对象的一部分,而且所有的实例对象都是分配在堆内存中,在虚拟机中分配好存储空间的时候,此时就会把实例对象的内存空间的成员变量都初始化为0,在类对象的加载过程中有五步,加载–>验证—>准备(static在这进行隐式初始化为0的)–>解析–>初始化,所以说成员变量就算你没有进行手动初始化也是有值的(为0或者为NULL)

局部变量必须进行初始化:原因如下

首先你得知道局部变量是位于方法中,而每一个方法在JVM执行过程中都是放在运行时数据区的栈贞中,而每一个栈贞中都存放着局部变量表、操作数栈、方法出口、动态链接等。因为局部变量表所需的内存空间是在编译期间就完成固定分配的,所以当调用方法前(也就是进入栈贞之前),就必须确定这个方法栈贞需要分配多大的变量空间,在方法运行期间就不会改变局部变量表的大小了,所以就说明了局部变量在创建时就必须进行初始化以确定分配内存大小。

浏览3,600技术问答
2021-08-10 11:23:33

聚焦热点问题
时时免费答疑

累计0人询问

极速问
  >>其他人还看过
更多问答

Java实验班

0学费 专业学前测评

Java就业班

围绕企业 直达就业

Java夜校班

业余时间学 超高性价比

Java架构师班

升职加薪 快速变现

返回顶部