class TestString1
{
public static void main(String [] args)
{
String a="JAVA";
String b="JAVA";
String c=new String("JAVA");
String d="JA";
String e="VA";
String f="JA"+"VA";
String g=d+e;
String h=c;

if(a==b)
    System.out.println("a==b");
    else
    System.out.println("a!=b");
    
    if(a==c)
    System.out.println("a==c");
    else
    System.out.println("a!=c");
    
    if(a==f)
    System.out.println("a==f");
    else
    System.out.println("a!=f");
    
    if(a==g)
    System.out.println("a==g");
    else
    System.out.println("a!=g");
    
    if(c==f)
    System.out.println("c==f");
    else
    System.out.println("c!=f");
    
    if(c==g)
    System.out.println("c==g");
    else
    System.out.println("c!=g");
    
    if(c==h)
    System.out.println("c==h");
    else
    System.out.println("c!=h");



}
}
a=b;
a!=c
a=f;
a!=g;
c!=f;
c!=g;
c=h;
能否讲一下原理,谢谢大家了!

解决方案 »

  1.   

    看看这篇文章,你就全明白了:
    http://blog.csdn.net/f_acme/archive/2006/03/05/615893.aspx
      

  2.   

    String a="JAVA";
    String b="JAVA";
    用String声明的是字符串常量,所以a和b是相同的。
    运行符"=="主要是判断两个对象是否相同。
      

  3.   

    String c=new String("JAVA");
    这句的意思并不是c=="java"~~而是初始化时调用了有参数的构造函数~~
      

  4.   

    to cyclone_8000 ()
    你问我怎么给分。不知道是csdn出什么毛病了,总是说这个不存在,那个不存在。所以我只有在这里说了。
    你点击“管理”,然后就可以分配分了。