关于 if (a=null || a.length() = 0)

arrowkl 2005-04-21 10:47:18
关于 if (a=null || a.length() = 0)

我一直搞不懂上面这个判断的区别
String a = "";
请帮忙解答一下有关上面这几个的区别
谢谢


...全文
229 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shan1119 2005-04-21
  • 打赏
  • 举报
回复
en
enrico 2005-04-21
  • 打赏
  • 举报
回复
上面已经说得很清楚了
midthinker 2005-04-21
  • 打赏
  • 举报
回复
String a = null
null,代表什么都没有,这里Variable a 不过是一个申明而已,不具String 实体
而a.length(),获得字符串a的长度,这里a必须已经具备了实体,即a != null

需要注意的是
String a = "" 与 String a = null 是完全两个不同的概念...

HOHO~~~
@.@||~
fdabobi 2005-04-21
  • 打赏
  • 举报
回复
a == null a是没有指向任何对象的句柄(类似与一个空的指针)
假设a为String,意思a没有指向任何一个字符串
此时调用a.length()会报错,因为a不是对象,所以没有方法可以调用

a.length() == 0 假设a为String,那么意思是a是一个指向字符串的句柄
但该字符串是一个没有包含任何字符的空字符串
此时不报错,因为a是一个对象,只不过对象长度可能为0

String a = "" 将名为a的句柄指向一个字符串对象
但该字符串对象是一个没有包含任何字符的空字符串
隐含意义:这个空字符串是在字符串池内的,String b = "",则a、b将指向同一对象,而不是两个不同的空字符串(这句不懂的话,看think in java)
yunqing1028 2005-04-21
  • 打赏
  • 举报
回复
首先说明一下
if(a = null || a.length() = 0)语法是错误的应为
if( a == null || a.length() == 0)

String a = "";
定义的a不为null而a.length()的值为0
zfeidiyard 2005-04-21
  • 打赏
  • 举报
回复
又学了点东西
Dan1980 2005-04-21
  • 打赏
  • 举报
回复
如果是声明成员变量,那么
String a = null;
等价于
String a;

这时的a并没有指向一个实际的String对象, 而是说, a是用来指向String类的对象的.

而 String a = ""; 这时a已经指向一个String对象了.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧