Q1:比如这个 //1 Stirng s="aaaa"; //2 System.out.println(s); //3 s=new String("bbbb"); //4 System.out.print("s"); 那么是不是说以2行以前输出的是aaaa,而3行以后s被重新定义了/ 以后的s全不输出的就是bbbb了。 那new String作用只有从新赋值?我本以为只有从新赋值,但我看到Q2才问的。 问题很简单但有些东西不敢肯定,呵呵。
Q2:有两个例子 String s1,s2; s1=new String("Hello!"); 1: s2=new String("Hello!"); System.out.println("\ts1==s2->"+(s1==s2)); ---------------------------- String s1,s2; 2: s1="Hello!"; s2="Hello!"; System.out.println("\ts1==s2->"+(s1==s2));
按照我的理解,声明两个字符串,那么第一个第二个的值都一样,s1==s2 应该是true,可是。。 问的是,第一个例子输出是false,第二个例子输出是true。 这两个的区别紧紧是第一个多了new String。 这个new String是做什么用的?
另外书上后面写了一个equals的方法. String s1,s2; s1="Hello!"; s2="Hello!"; System.out.println("\ts1.equals(s2)="+s1.equals(s2)); 答案是true。书上说equals是比较两个字符串内容的。我能理解。 那么不加equals是表示什么的?
问题很简单。。。小菜鸟也去看过api文档。。。但是凭我有限的英文水平。。 看了半天没看明白。。 麻烦个人大人看看。。。感激不仅。。。