我用这<%
String userId=(String)session.getAttribute("userId");
if(userId==null||userId.equals("")){
response.sendRedirect("index.jsp");
return;
}
%> 来判断登陆界面userid是不是为空if(userId==null和userId.equals("")){ 想问下这两句话有什么区别?userId==null 不就是userId.equal("")吗?

解决方案 »

  1.   

    不是,null是不指向任何内存单元,userId.equal("")是指向某内存单元,其内容为""(无内容)。
    ps:最好写成:"".equals(userId)
      

  2.   

    不一样的啊!!null还没有内存空间,""是有空间了,没有内容
      

  3.   

    userId==null 不就是userId.equal("")吗?
    =======================================
    好好看书,任何东西都可以和null比较,但是不是所有的.equal("");都成立,null如果跟""是一样的话,那么null和0又是什么关系呢?
    呵呵
      

  4.   

    呵呵,,基础问题,
    userId==null,,,是一个空指针,,没有指向任何内存地址,,而userId="",指向了一个内存地址,,也就是分配了空间。。
      

  5.   

    null表示不存在对对象的引用,而""表示空字符串,存在引用,也就是说存在指向""的“ 
    指针”。 
      

  6.   

    null是不确定的,而""是确定的内容。
      

  7.   

    null还没有内存空间,""是有空间了,没有内容
      

  8.   

    刚刚学习的都会疑惑的。
    有多时候不判断null就会出现错误,加上if(userId==null)就对了。