加载中…
个人资料
谢先斌
谢先斌
  • 博客等级:
  • 博客积分:0
  • 博客访问:392,805
  • 关注人气:201
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

Java中""与null的区别与总结

(2013-08-23 23:26:57)
标签:

java

null与空串的区别

null

空对象

教育

分类: Java

1.    类型问题:

Javanull是一个关键字,null本身代表一个不确定的对象(或空对象),但不属于java.lang.Object类型,null不能用于基本数据类型。(在C语言中,NULL指针是一个无类型指针,在ASCII码的第一个字符是NULL,它的数值是0,占用1字节,C语言把它作为字符串的最后一个字符,以表示字符串到此结束."\0"。)

Java“”是一个长度为零的空字符串,是String类的一个实例化对象。

2. 内存分配问题:

    String s=null;只是声明了一个String对象的引用,但是这个引用未指乡任何内存空间;而String s="";这个引用指向了一块空字符串的内存空间。

3. 操作问题:

NULL代表声明了一个不确定的队形(或空对象),对空对象做任何操作都不非法的,当然除了===""是一个字符串了,该字符串没有内容,长度为零,对字符串的所有操作都适用于它。

测试实例如下:

    public static void main(String[] args) {

       Scanner sc = new Scanner(System.in);

       //当提示输入一空行时,我们敲击回车:这时str存的因为一个空串

       System.out.println("please input one line:");

       String str = sc.nextLine();

       System.out.println("line:"+str.length());

       System.out.println(str.equals(""));

       System.out.println(str.equals(null));

       System.out.println(str==null);

       System.out.println("------");

        //null是对象吗? 属于Object类型吗?

        if (null instanceof java.lang.Object) {

            System.out.println("null属于java.lang.Object类型");

        } else {

            System.out.println("null不属于java.lang.Object类型");

        }

      

       System.out.println("------");

      

       String mess = null;

       //System.out.println(mess.length());//改行报 java.lang.NullPointerException,即空指针异常。

      

      

       System.out.println("The end of main thread.");

 

    }

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有