黑马程序员技术交流社区

标题: 空字符串和null的区别是什么 [打印本页]

作者: AnrryHo    时间: 2016-4-27 00:59
标题: 空字符串和null的区别是什么
空字符串和null的区别是什么
作者: 小K哥    时间: 2016-4-27 07:33
空字符串是有内存空间,null是无内存空间。
作者: yanwenyong    时间: 2016-4-27 08:21
按照指针的思路来讲比较容易一些,
平常我们 String msg;就相当于创建了一个指针,或者说给我们一个可以去提取数据的标识。
但是现在这个标识没有办法使用,因为它不指向任何位置。
此时我们就可以说 msg = null;
但是一旦开始给msg赋值  哪怕是不写内容例如msg = “”;
这个时候msg就开始指向内存中的一块地址,该地址的内容就是“”;
也就是说  系统先去分配内存空间,然后让msg去指向刚刚分配的内存地址,最后给地址赋值""(即便是空字符串,但是也在内存中占据位置)


所以总的来说  空字符串和 null最大的区别就在于是否在内存中占据空间。

在应用过程中 假如我们要打印出来msg的是空字符串  那可以打印出来 而且不会报错  只不过数据是什么都没有
但是如果我们打印的msg是null 那在执行打印语句的时候就会报错,就是通常我们遇到的NullPointException
作者: 小红花    时间: 2016-4-27 10:06
前者在内存中占据空间,而null在内存中却不占内存
作者: dtmacg    时间: 2016-4-27 10:35
空字符串有内存空间,null无内存空间。 空字符串可以调用方法,而null不能指向对象不能调用方法
作者: 炙爱小爱    时间: 2016-4-27 19:09
打个比方,一串羊肉串,一个肉没了还剩下一根棍子,一个棍子也没有了,不懂私聊我
作者: tongtian    时间: 2016-4-27 19:44
加油加油加油加油




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2