首页 > 代码库 > 为什么全局变量无须初始化 系统自动给默认值,局部变量必须初始化?
为什么全局变量无须初始化 系统自动给默认值,局部变量必须初始化?
基本数据类型
数值6类 (long/int/short/byte)(double/float) 非数值2类(char,boolean)
下面是默认值:
0/0/0/0/0.0/0.0/ /false
- 首先 Java 语言就是这么规定的。
- 然后为什么 Java 语言要这么规定呢?有什么内部机理吗?
而对于方法的局部变量,是在线程的Stack中,当然Stack他也可以帮我们初始化,不过有一个问题。对于有些局部变量,在方法的一开始是没有的,有些在循环中的局部变量是要反复的声明多次的。有些局部变量作用域结束后,另一个局部变量又会占用这个局部变量的位置。
那么初始化要放在何时呢?当然JVM可以帮我们初始化多次,不过那样或许会带来性能问题。
作者:Intopass
链接:https://www.zhihu.com/question/30516949/answer/48369234
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
为什么全局变量无须初始化 系统自动给默认值,局部变量必须初始化?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。