字符串判空的几种方式以及他们之间的区别

来源:互联网 发布:centos 7 net snmp 编辑:程序博客网 时间:2024/06/07 16:28

1、首先先理解这个三个变量的含义:

[java] view plain copy
 print?
  1. String a = new String  
  2. String b = ""  
  3. String c =null  

含义:

[java] view plain copy
 print?
  1. 此时a是分配了内存空间,但值为空,是绝对的空,是一种有值(值存在为空而已)  
  2. 此时b是分配了内存空间,值为空字符串,是相对的空,是一种有值(值存在为空字串)  
  3. 此时c是未分配内存空间,无值,是一种无值(值不存在)  

2.==和.equals()的区别

总结:对于== 比较的是栈内存中存放的引用堆内存中对象的引用地址,.equals()比较的是俩个值是否相等,而不是比地址。

3.TextUtils.isEmpty(str)和str.isEmpty()

总结:str.isEmpty();则相当于只判断了str.length == 0。而当空(null)时 str.isEmpty() 会空指针异常。
所以我们可以用TextUtils.isEmpty(str)来代替if(text == null || text.length() == 0)
引用类型继承于Object类(也是引用类型)常常有引用变量或是String类型变量设置为null,那么null指的是什么?我们看:A a = new A();那么这里a指向堆内存中实例化的A对象。
当a=null,a指向空!我们可以这样理解,null是没有地址,” “是有地址,但里面的内容为空。

4.八种数据类型
  • 基本数据类型:byte,short, int, long, float, double, char, boolean;
  • 引用数据类型:String,引用变量;



阅读全文
0 0