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

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,引用变量;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值