Java空字符串与null区别
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区别相关推荐
- Java进阶(二十一)java 空字符串与null区别
java 空字符串与null区别 1.类型 null表示的是一个对象的值,而并不是一个字符串.例如声明一个对象的引用,String a = null ; ""表示的是一个空字符串, ...
- Java空字符串和null
转载 Java空字符串与null的区别 1.类型 null表示的是一个对象的值,而不是一个字符串.例如声明一个对象的引用,String a=null. ""表示的是一 ...
- java 空串占用内存吗_java空字符串“”和null区别
空字符串"" 1.类型:""是一个空字符串(String),长度为0,占内存,在内存中分配一个空间,可以使用Object中的方法(.toString()等) 2 ...
- Java 空格“ ”、空字符串“”和null区别
空格" " 空字符串"" 1.类型:""是一个空字符串(String),长度为0,占内存,在内存中分配一个空间,可以使用Object对象中的 ...
- JAVA空字符串和Null的区别浅析
空字符串:String str1 = " "; 空字符串:是一个长度为0且占内存的空字符串,在内存中分配一个空间,可以使用Object对象中的方法.例如to String( )方法 ...
- Java 空字符串和null的区别【实践】
1.空字符串 ""是一个空字符串,长度为0且占内存的,可以使用Object对象中的方法.如"".toString(). new String() 创建一个字符串 ...
- java中String值为空字符串与null的判断方法
Java空字符串与null的区别 1.类型 null表示的是一个对象的值,而不是一个字符串.例如声明一个对象的引用,String a=null. ""表 ...
- 空字符串和null有什么区别
空字符串和 null 有很大的区别. 空字符串是一个长度为 0 的字符串,它是一个有效的字符串,代表着没有任何内容. 而 null 则表示没有任何值,不是一个有效的字符串,也不代表任何意义.它指向了一 ...
- mysql 替换空值_MySQL查询用空字符串替换NULL
MySQL查询用空字符串替换NULL 如何用空字符串替换select中的NULL值?输出" NULL"值看起来不是很专业. 这是非常不寻常的,根据我的语法,我希望它能正常工作.希望 ...
- kettle默认情况下把空字符串当作NULL处理
kettle默认情况下把空字符串当作NULL处理,这个问题在sqlserver会存在,最终只好找到修改配置的办法: 在C:\Users\用户名.kettle目录中找到kettle.properties ...
最新文章
- Java学习总结:45(字符编码)
- 头条Android面试题,史上最全的Android面试题集锦(五)
- fatal error C1001的一个解决心得
- 科普:算法岗是什么?我适不适合算法岗?选什么方向的算法岗?
- SAP Spartacus的Lock Focus Directive单元测试实现
- 具有关联映射的Hibernate Composite ID
- Python魔术世界 1 如何使用Visual Studio在WIN10中一键安装Python3入门编程环境并测试Django...
- javaWeb(入门基础详解)
- sublime text 3 3143
- 了解Go编译处理(一)—— go tool
- 用java设置网页背景图片_JAVA设置背景图片
- 【WB32库开发】第13章(上)DMA直接存储器访问——存储器到存储器
- 2020-03-03学习日结
- 【译】SafetyNet:Google对Android的篡改检测 (SafetyNet: Google's tamper detection - Part 1 )
- Python批量获取VOC测试集的类别
- 打印文件,打印机出error纸张
- 风帆头,旗帜服,“背”在肩上的古国王印
- nas服务器上文件恢复,nas文件恢复
- 男孩,请用几分钟看这篇文章(女孩别看,会哭 )
- 格式工厂 由于应用程序配置不正确,应用程序未能启动的解决方法
热门文章
- Caffe编译 Mnist训练测试---基本参数学习
- caffe命令行解析
- 《机器学习实战》完整读书笔记
- 关键词词云怎么做_网友问:做独立站,怎么做关键词排名,怎么做客户流量?...
- truffle Migration是什么
- 微信小程序云开发教程-JavaScript入门(4)-捕捉异常
- 19春北理工计算机应用基础,19春北理工《计算机应用基础》在线作业(02)【标准答案】.doc...
- sdl android rtp h264,使用RTP协议发送和接收H264的例子(支持解码、播放)
- 浏览器对象模型(Browser Object Model)
- Elasticsearch2.4.X 搜索引擎框架 安装配置