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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kun1990 中级黑马   /  2013-12-22 00:42  /  1120 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

null与""的区别,哪位大神能接待一下?

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

3 个回复

倒序浏览
NULL代表声明了一个空对象,根本就不是一个字符串。

""代表声明了一个对象实例,这个对象实例的值是一个长度为0的空字符串。

NULL代表声明了一个空对象,对空对象做任何操作都不行的,除了=和==

""是一个字符串了,只是这个字符串里面没有内容了

String s=null;只是定义了一个句柄,也就是说你有了个引用,但是这个引用未指向任何内存空间

String s="";这个引用已经指向了一块是空字符串的内存空间,是一个实际的东东了,所以你可以对它操作,而不用担心什么了
而且,null可以赋值给任何对象.""就不行了.

这里""和NULL绝对是两个概念

""代表一个字符串存在,它的值就是“”
(摘自网上)觉得说的很透彻,我也学学。{:soso_e113:}

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 25是一个圆满。25只是一个开始,并不是结束.

查看全部评分

回复 使用道具 举报
  1. public class TestNull {
  2. public static void main(String[] args) {
  3. String a = new String();
  4. String b = "";
  5. String c = null;
  6. if(a.isEmpty())
  7. {
  8. System.out.println("String a = new String");
  9. }
  10. if(b.isEmpty())
  11. {
  12. System.out.println("String b = \"\"");
  13. }
  14. if(c==null)
  15. {
  16. System.out.println("String c =null");
  17. }
  18. if(null == a) {
  19. System.out.println("String a =null");
  20. }
  21. if(a=="")
  22. {
  23. System.out.println("a = ''");
  24. }
  25. }
  26. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 很给力!

查看全部评分

回复 使用道具 举报

以上输出:

String a = new String
String b = ""
String c =null
分析:

此时a是分配了内存空间,但值为空,是绝对的空,是一种有值(值存在为空而已)

此时b是分配了内存空间,值为空字符串,是相对的空,是一种有值(值存在为空字串)

此时c是未分配内存空间,无值,是一种无值(值不存在)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马