黑马程序员技术交流社区

标题: null问题 [打印本页]

作者: kun1990    时间: 2013-12-22 00:42
标题: null问题
null与""的区别,哪位大神能接待一下?


作者: 一年之后    时间: 2013-12-22 00:54
NULL代表声明了一个空对象,根本就不是一个字符串。

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

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

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

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

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

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

""代表一个字符串存在,它的值就是“”
(摘自网上)觉得说的很透彻,我也学学。{:soso_e113:}
作者: belief丶Only    时间: 2013-12-22 03:21
  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. }
复制代码

作者: belief丶Only    时间: 2013-12-22 03:23
belief丶Only 发表于 2013-12-22 03:21

以上输出:

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

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

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

此时c是未分配内存空间,无值,是一种无值(值不存在)




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