isEmpty与null、""的区别
前一段时间我阅读别人的代码,发现有的时候用isEmpty,有的时候用null,有的时候用""。我很困惑三者之间的区别,于是我就自己写了一个程序来验证一下
public class Test {
public static void main(String[] args) {
//分配内存空间,值为空
String a = new String();
//分配内存空间,值为空字符串
String b = "";
//未分配内存空间
String c = null; if (a != null) {
System.out.println("a值存在");
}
if (b != null) {
System.out.println("b值存在");
}
if (c == null) {
System.out.println("c值不存在");
}
if (a == "") {
System.out.println("a值存在,为空字符串");
}
if (b == "") {
System.out.println("b值存在,为空字符串");
}
//dead code
if (c == "") {
System.out.println("c值存在,为空字符串");
}
if (a.isEmpty()) {
System.out.println("a值存在,为空字符串或者为空");
}
if (b.isEmpty()) {
System.out.println("b值存在,为空字符串或者为空");
}
// Null pointer access: The variable c can only be null at this location
// if (c.isEmpty()) {
// System.out.println("String c=null");
// }
} }
运行的结果如下
a值存在
b值存在
c值不存在
b值存在,为空字符串
a值存在,为空字符串或者为空
b值存在,为空字符串或者为空
得出的结论:
isEmpty()
1.如果不分配内存空间,不能用isEmpty(),否则报空指针异常
2.isEmpty()不能分辨出值是空还是空字符串
null
1.null只能分辨出值是否不分配内存空间
“”
1.不管值是否分配内存空间都不会报错
isEmpty与null、""的区别的更多相关文章
- Map的isEmpty()与==null的区别
isEmpty()方法判断Map是否有内容(即new分配空间后是否put键值对),若没有内容则true,否则false == null是判断map是否为null(即是否new分配空间,和其中的键值对没 ...
- List的isEmpty与==null的区别
集合的判空一般判定方法 ArrayList<Person> list = null; System.out.println(null == list);//return true Syst ...
- Java空字符串与null的区别和判断字符串是否为空的方法
Java空字符串与null的区别: 1.类型null表示的是一个对象的值,而并不是一个字符串.例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也 ...
- java判断一个字符串是否为空,isEmpty和isBlank的区别
转载于:https://blog.csdn.net/liusa825983081/article/details/78246792 实际应用中,经常会用到判断字符串是否为空的逻辑 比较简单的就是用 S ...
- Java 空字符串和 字符串为null的区别
之前一直没有搞清楚 字符串为空和字符串为null的区别,今天写代码一直出现NullPointerException异常,我一直没有搞清楚,后来发现我是这样写的 String s = null; s = ...
- JavaScript中undefined与null的区别
通常情况下, 当我们试图访问某个不存在的或者没有赋值的变量时,就会得到一个undefined值.Javascript会自动将声明是没有进行初始化的变量设为undifined. 如果一个变量根本不存在会 ...
- string.empty和null的区别
关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后 ...
- 类和对象 nil/Nil/NULL的区别
iOS-----类和对象,nil/Nil/NULL的区别 iOS中类和对象,nil/Nil/NULL的区别 类与对象的概念 类是对同一类事物高度的抽象,类中定义了这一类对象所应具有的静态属性(属性 ...
- iOS-----类和对象,nil/Nil/NULL的区别
iOS中类和对象,nil/Nil/NULL的区别 类与对象的概念 类是对同一类事物高度的抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法). 对象是类的一个实例,是一个具体的事物. ...
- iOS-nil,Nil,NULL的区别
一.简述 1.nil用来给对象赋值(Objective-C中的任何对象都属于id类型) 2.NULL则给任何指针赋值,NULL和nil不能互换 3.nil用于类指针赋值(在Objective-C中类是 ...
随机推荐
- android 14.04 64位 adb cannot run program adb
按照网上的说法: Failed to get the adb version: Cannot run program "adb": error=2, 没有那个文件或目录 64位系统 ...
- css中的position:relative和absolute 属性
语法: position : static | absolute | fixed | relative 取值: static :默认值.无特殊定位,对象遵循HTML定位规则 absolute :将对象 ...
- WinStore控件之TextBlock
1 TextBlock简单实例应用 <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}&quo ...
- [Z]CS权威会议
CS Conference TOP 40 计算机会议TOP40 一.A 类 15 个 ASPLOS: Architecture Support for Programming Languages an ...
- 分享一个Mongodb PHP封装类
<?php /** * Mongodb 基本操作API,支持基本类似关系统型数据库的操作接口 * * @version 1.0 * [说明] * * 1:该版本API实现了 Mongodb 中最 ...
- IIS崩溃时自动抓取Dump
背景:在客户现场,IIS有时会崩溃,开发环境没法重现这个bug,唯有抓取IIS的崩溃是的Dump文件分析. IIS崩溃时自动抓取Dump,需要满足下面几个条件 1.启动 Windows Error R ...
- Watch out for these 10 common pitfalls of experienced Java developers & architects--转
原文地址:http://zeroturnaround.com/rebellabs/watch-out-for-these-10-common-pitfalls-of-experienced-java- ...
- python面试题大全(二)
转载请注明出处http://www.cnblogs.com/goodhacker/p/3387027.html 1.python中类方法.类实例方法.静态方法有何区别? 区别: 类方法和静态方法都可以 ...
- [pyhton]python内建方法
撸一遍python的内建方法 这样做的好处就是:我如果要完成一个功能的时候,如果能用内建方法完成,就用内建方法.这样可以提高效率,同时使自己的代码更加优雅.哎呦?那岂不是撸完就是python高手了?我 ...
- 初涉SQL Server性能问题(1/4):服务器概况
当你作为DBA时,很多人会向你抱怨:“这个程序数据加载和蜗牛一样,你看看是不是服务器出问题了?”造成这个问题的原因有很多.可能是程序应用服务器问题,网络问题,程序实现方式问题,数据库服务器负荷过重.不 ...