Java空字符串与null区别:

1、类型
null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;
""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;

2、内存分配
String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间;
String str = "";    表示声明一个字符串类型的引用,其值为""空字符串,这个str引用指向的是空字符串的内存空间;

在java中变量和引用变量是存在栈中(stack),而对象(new产生的)都是存放在堆中(heap):

就如下:

String str = new String("abc") ;

ps:=左边的是存放在栈中(stack),=右边是存放在堆中(heap)。

3、示例程序:

public class String_Demo01 {/*** @param args*/public static void main(String[] args) {        String str1 = new String() ;String str2 = null ;String str3 = "" ;System.out.println(str1==str2);                //内存地址的比较,返回falseSystem.out.println(str1.equals(str2));         //值的比较,返回falseSystem.out.println(str2==str3);                //内存地址的比较,返回falseSystem.out.println(str3.equals(str2));         //值的比较,返回falseSystem.out.println(str1==str3);                //内存地址的比较,返回falseSystem.out.println(str1.equals(str3));         //值的比较,返回true
    }}

通过如上的程序可以得出如下结论:

  • 字符串对象与null的值不相等,且内存地址也不相等;
  • 空字符串对象与null的值不相等,且内存地址也不相等;
  • 创建一个字符串对象的默认值为""

转载于:https://www.cnblogs.com/candle806/archive/2013/01/17/2864917.html

Java空字符串与null区别相关推荐

  1. Java进阶(二十一)java 空字符串与null区别

    java 空字符串与null区别 1.类型 null表示的是一个对象的值,而并不是一个字符串.例如声明一个对象的引用,String a = null ; ""表示的是一个空字符串, ...

  2. Java空字符串和null

    转载 Java空字符串与null的区别 1.类型 null表示的是一个对象的值,而不是一个字符串.例如声明一个对象的引用,String a=null.        ""表示的是一 ...

  3. java 空串占用内存吗_java空字符串“”和null区别

    空字符串"" 1.类型:""是一个空字符串(String),长度为0,占内存,在内存中分配一个空间,可以使用Object中的方法(.toString()等) 2 ...

  4. Java 空格“ ”、空字符串“”和null区别

    空格" " 空字符串"" 1.类型:""是一个空字符串(String),长度为0,占内存,在内存中分配一个空间,可以使用Object对象中的 ...

  5. JAVA空字符串和Null的区别浅析

    空字符串:String str1 = " "; 空字符串:是一个长度为0且占内存的空字符串,在内存中分配一个空间,可以使用Object对象中的方法.例如to String( )方法 ...

  6. Java 空字符串和null的区别【实践】

    1.空字符串 ""是一个空字符串,长度为0且占内存的,可以使用Object对象中的方法.如"".toString(). new String() 创建一个字符串 ...

  7. java中String值为空字符串与null的判断方法

    Java空字符串与null的区别 1.类型        null表示的是一个对象的值,而不是一个字符串.例如声明一个对象的引用,String a=null.        ""表 ...

  8. 空字符串和null有什么区别

    空字符串和 null 有很大的区别. 空字符串是一个长度为 0 的字符串,它是一个有效的字符串,代表着没有任何内容. 而 null 则表示没有任何值,不是一个有效的字符串,也不代表任何意义.它指向了一 ...

  9. mysql 替换空值_MySQL查询用空字符串替换NULL

    MySQL查询用空字符串替换NULL 如何用空字符串替换select中的NULL值?输出" NULL"值看起来不是很专业. 这是非常不寻常的,根据我的语法,我希望它能正常工作.希望 ...

  10. kettle默认情况下把空字符串当作NULL处理

    kettle默认情况下把空字符串当作NULL处理,这个问题在sqlserver会存在,最终只好找到修改配置的办法: 在C:\Users\用户名.kettle目录中找到kettle.properties ...

最新文章

  1. Java学习总结:45(字符编码)
  2. 头条Android面试题,史上最全的Android面试题集锦(五)
  3. fatal error C1001的一个解决心得
  4. 科普:算法岗是什么?我适不适合算法岗?选什么方向的算法岗?
  5. SAP Spartacus的Lock Focus Directive单元测试实现
  6. 具有关联映射的Hibernate Composite ID
  7. Python魔术世界 1 如何使用Visual Studio在WIN10中一键安装Python3入门编程环境并测试Django...
  8. javaWeb(入门基础详解)
  9. sublime text 3 3143
  10. 了解Go编译处理(一)—— go tool
  11. 用java设置网页背景图片_JAVA设置背景图片
  12. 【WB32库开发】第13章(上)DMA直接存储器访问——存储器到存储器
  13. 2020-03-03学习日结
  14. 【译】SafetyNet:Google对Android的篡改检测 (SafetyNet: Google's tamper detection - Part 1 )
  15. Python批量获取VOC测试集的类别
  16. 打印文件,打印机出error纸张
  17. 风帆头,旗帜服,“背”在肩上的古国王印
  18. nas服务器上文件恢复,nas文件恢复
  19. 男孩,请用几分钟看这篇文章(女孩别看,会哭 )
  20. 格式工厂 由于应用程序配置不正确,应用程序未能启动的解决方法

热门文章

  1. Caffe编译 Mnist训练测试---基本参数学习
  2. caffe命令行解析
  3. 《机器学习实战》完整读书笔记
  4. 关键词词云怎么做_网友问:做独立站,怎么做关键词排名,怎么做客户流量?...
  5. truffle Migration是什么
  6. 微信小程序云开发教程-JavaScript入门(4)-捕捉异常
  7. 19春北理工计算机应用基础,19春北理工《计算机应用基础》在线作业(02)【标准答案】.doc...
  8. sdl android rtp h264,使用RTP协议发送和接收H264的例子(支持解码、播放)
  9. 浏览器对象模型(Browser Object Model)
  10. Elasticsearch2.4.X 搜索引擎框架 安装配置