永发信息网

java定义变量为什么要初赋值为null

答案:5  悬赏:10  手机版
解决时间 2021-04-03 01:43
java定义变量为什么要初赋值为null
最佳答案
JAVA的成员变量在类编译时,如果没有显示的给值,编译时会给加上默认值(0、false、null等),这也是跟C,C++的编译上的不同,但局部变量就不会(这个JDK的版本有关系,后面的版本应该不加=NULL,也没关系),这主要是跟编译的规则有关系.
至于为什么要这样写,这主要是考虑到代码的移值和兼容吧.也是一个写程序的好习惯,因为做为一个程序员,你不单纯只用一种语言在写,显示的给值是所有语言都能够接受吧.所以是一种好的习惯.再说,这个习惯跟JAVA的回收机制也有关系,只有显示的给了NULL,那么上次的调用的变量就可以更快的回收,否则它也会影响内存.
全部回答
你说的对,不赋值的确也是null。但是在某些语言中却不是(比如C的指针,不赋值就是随机指针)。这纯粹是让你养成一个好习惯而已。
java里赋不是完全不一样的,不赋值表示还没初始化,连地址都没有,是完全不能使用的,赋值后即使是空值,也是一个正常的变量了。
在方法里定义的局部变量,就必须给初始值;若是在类中定义的成员变量,则不用因为类在初始化时,已经保证了成员变量的初始化,即null,局部则必须通过自定义初始化 还有就是 这样可以节省内存 当你使用的时候在构造出来 不适用当然为空
因为未初始化的变量是不能被使用的,类的属性会默认初始化,而变量则需声明时初始化。如:Connection con;
try{ con = Drivermanager.getConnection("....");}catch(Exception e){ }finllay{ con.close(); //如果上面是Connection con;那么这里con就不能用,因为con不一定会被初始化,要是Drivermanager.getConnection发生错误,那么con就没被初始化}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
快手上面的会骂人的汤姆猫怎么下载
520那天我给我喜欢的女生发了个520红包她回了
😭 不知道为什么 他居然那么生气 就因
农村住宅,走东门,临街主人属龙,贴瓷砖要什么
网贷借2000到手1400算高利吗
崔钟雷的个人简介
何时雷电撕云雾,求下联
北京亦庄武术/搏击哪家好
张和刘取名字怎么好听
塑料厨具切菜板是用正面还是反面?
想种一种花盆栽的,希望可以小一点又漂亮,花
报销单上模仿老板签字老板签过字的报销单上私
lols7老鼠打野怎么出装
2pm发生过什么事么?
浙江文科509分报什么大学好
推荐资讯
28÷4+(13+27),28÷4和13+27能同时算么
企业为什么要走流水账呢?
怎么样才能进入迪士尼公主梦幻世界2016年可以
男属牛61年是什么命
飞驰钣金喷漆维修行我想知道这个在什么地方
运城到垣曲电话
求首粤语歌!!! 链接如下
滤过除菌法常用的微孔滤膜滤器的孔径为多少nm
如图所示,在坡度一定的山坡 A 处测得山顶上
到哪里有学做油炸小吃的
完美国际CK代码怎么弄成白皮肤
Panda, (which is) native to China , is qui
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?