A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1312564637   /  2015-10-14 12:15  /  11501 人查看  /  57 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如果不给局部变量初始值程序也不会报错,但前提是不能参与运算,参与运算就会报错。这和成员变量不同,成员变量有默认的初始值,但局部变量没有!!!!新人入学,急需黑马币!!!
回复 使用道具 举报
如果不自动初始化,
可以让初始化的选择给用户,做到最少的初始化动作。
而用户不进行初始化的话,意味着用户不关心,但是明显,显示初始化是更好的习惯。
让用户写出来的话,更显得程序的某种完整性(能看出来初始化成什么样,而不是依赖
于是编译器偷偷摸摸在后面做手脚)
所以一方面可以认为可以在速度上,最少初始化,另一方面自由度交给了用户。
当然,自动进行初始化也是完全可以的,只要你习惯了在这里省点事,如果不动作,就让
编译器给一个默认动作。
回复 使用道具 举报
变量定义必须给初始值,但是如果你定义的时候不给,后面给也可以。如果后面也不给直接用就会报错。你的那个代码我看了,变量b你在判断的时候给它赋值了。跪求选择为答案。缺黑马币啊,不然不能上就业班。在这谢谢了

点评

可是我不会弄啊  发表于 2015-10-29 20:45
回复 使用道具 举报
局部变量使用前必须初始化
回复 使用道具 举报
陈威 初级黑马 2015-10-31 23:31:15
45#
你只需要记住只要在栈内存中的变量都不会初始化,在堆中和方法区中的都会初始化值!
回复 使用道具 举报
定义局部变量时必须初始化。
当你定义一个局部变量,没有初始化变量,也没有使用这个变量时就不会报错,反之则报错。
回复 使用道具 举报
qishi有的时候真是搞不明白JVM在后台到底是怎么搞得 ,就跟一个静态刚发样不是说得用类名或者对象调用吗。但是子类调用父类的静态方法时,不用父类类名.调用或者是对象调用,直接用方法名就可以了。。
回复 使用道具 举报
final修饰的变量只能赋值一次,不会默认初始化,就会报错啦
回复 使用道具 举报
因为你程序里没用到它 只是放在那,  在用它前必须赋值,不然就报错了
回复 使用道具 举报
有些没给初始值是因为他默认有值  像Int的默认值为0  String的默认值为null  
回复 使用道具 举报
有些没给初始值是因为他默认有值  像Int的默认值为0  String的默认值为null  
回复 使用道具 举报
zhuwenjia 来自手机 中级黑马 2015-11-22 16:25:06
52#
这个可不可能与编译器有关系,默认是需要付初值的。
回复 使用道具 举报
Boolean的值只能是true或者false,你不给初始赋值的话它也蒙啊
回复 使用道具 举报
123
您需要登录后才可以回帖 登录 | 加入黑马