string str1 = null;string str2 = "";str1和str2有什么区别吗

解决方案 »

  1.   

    null,表示没有任何东西,
    而""表示是一个空字串。
      

  2.   

    就是null 和空字符串的区别
    "" 分配了内存
    null没有
      

  3.   

    ""是空字符串,但是也是字符串,没有什么东西。
    而null是空的意思,什么都没有,没有地址。
    String str=null 的意思是 声明了一个String的句柄,句柄的名字是 str 但是没有指点认和内存空间。
    而String str="" 是指向一个内存空间的,这个内存空间有一个空的字符串""
      

  4.   

    当然 null表示什么东西都没有 不给分配内存 “”表示空值  有内存的
      

  5.   

    string str1 = null; 表示创建字符串str1,null表示并没有给str1分配内存空间,所以也没有值了string str2 = "";表示创建了字符串str2,而且初始值为字符串"",也就是说创建了变量str2,而且其初始值字符串""指向一个地址
      

  6.   

    谢谢大家对上面的解答
    补充个查询问题(好像不该这里讨论,呵)表news 
    ----------------------------------------------------------- 
    id      newsTitle(varchar)    newssFrom(varchar) 
    ----------------------|------------------ 
    1        美容           |         娱乐头条 
    2        公车事件       |          NULL 
    3        达人           |
    4        山寨           |         新闻早报 
    5        武陵           |           NULL 
    6        成龙           |        电影快报 
    7        诸葛孔明       |           NULL 
    8        洪水           |        南国早报 
    9        张飞           |
    10      亚运会          |        广州日报 
    ------------------------------------------- 
    注:NULL为mysql query browser 窗口显示的,其实没数据的。 
    字段、数据及属性上面都有了。 
    希望能把没有新闻来源(newsFrom)的新闻查询出来!利用hibernate   查询
    代码: 
    public class DaoTest {   public static void main(String[] args) { 
         Session session = HibernateUtil.getSession(); 
         Transaction tx = null; 
         try { 
            tx=session.beginTransaction(); 
            String kew1=null; 
            String kew2=""; 
            Query query=session.createQuery("from Tnews t where t.newsFrom ='"+kew1+"'"); 
            List list=query.list(); 
            System.out.println(list.size()); 
            tx.commit(); 
          } catch (HibernateException e) { 
              e.printStackTrace(); 
              if (tx!=null) { 
                  tx.rollback(); 
              } 
          } finally { 
              HibernateUtil.closeSession(); 
        } 
      } 
    } 本人想查询字段newsFrom为空值或者无数据的 也就是没新闻来源的  新闻; 
       当取值kew1时,查询数据为0; 
       当取值kew2时,可以查出数据来,但不是我想要的,也就是查到2条数据(id为3和9),我想要查的是包含上面显示为NULL的的数 据。,结果应该为5才行。把自己搞有点晕了!
    呵。。好像这个问题不该放这里来,哈
      

  7.   


    string str1 = null;string str2 = "";str1和str2有什么区别吗
    NULL != ""  != "   "编程书上或GOOGLE中查找一下 NULL, 空字符串,空格字符的区别。
      

  8.   

    Query query=session.createQuery("from Tnews t where t.newsFrom is null "); 
    这样写行吗?应该能查到3的
      

  9.   


    谢谢,哈哈,解决问题了
    Query query=session.createQuery("from Tnews t where t.newsFrom is '"+kew2+"' or t.newsFrom is null" ),查询出我想要的5个数据了
      

  10.   

    这个hibernate查询具体见
    http://topic.csdn.net/u/20090712/10/9516078c-eab7-4d97-8d57-1e3617db8257.html?37620