阅读以下程序代码,程序打印输出的结果是什么?
    public class Class35
    {
    public static void main(String[ ] args)
    {
    String s1=new String("abcdefg"),s2="abcdefg";
    System.out.prinln(s1==s2);
    System.out.prinln(s1.equals(s2));
    System.out.println(s1.ends With(s2)==s1.starts With(s2));
    }
    }
 
【正确答案】false,true,true
【答案解析】 ==和equals的区别:==是判断两个字符串对象是否是同一个对象,即两个对象的内存地址是否相同;equals是判断两个字符串的值是否相同。题目中s2相当于一个值,而s1是指向这个值的引用,它代表的值和s2是一样的。endsWith( )和startsWith( )是String类的两个方法,分别判断前一个字符串是否以后一个字符串结束或者开始,它们的返回类型为boolean类型。s1和s2的值相等,所以这两个方法的返回值都是true,即相等。注意区分字符串中的等号和普通类型的等号。