首页 > 编程语言 > 详细

java知识点3(null)

时间:2019-01-11 11:16:42      阅读:129      评论:0      收藏:0      [点我收藏+]
优秀博文地址:http://www.cnblogs.com/znsongshu/p/6282672.html
另一个帖子:https://bbs.csdn.net/topics/380085577?list=lz
其中的总结部分:
来个总结吧:

int test(){
String str = null;
str = "String";
}
像这种String str = xxx;
不管xxx是null还是其他字符串,str这个东西都是在栈里有块空间,可以理解为c的指针,=null的时候,里面存的是0(这块不知道对不对),非null的时候存的是实际字符串的地址(堆中或者常量池中)。

而String str;
这种情况,jvm同样也为其分配了一块空间,但是不知道值是多少
java语法要求引用之前必须初始化,所以你直接这么写,str根本不能引用,所以无所谓。
其实jvm也完全可以不为它分配空间。

这个问题,说到底,其实就是java的语法要求,必须初始化的问题。

如果有C语言经验的话,可能有这样的问题,
int i;
int j = i; //使用了未初始化的i
因为i没有初始化,所以i是个“随机的值”,比如i可能是5,可能是8,可能是……
java为了避免这种问题,语法上规定,局部变量在使用之前,必须初始化!如果不初始化就报错。

java知识点3(null)

原文:https://www.cnblogs.com/shanchuang-119/p/10253870.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!