这段代码是什么意思?

public class ToStringTest {
    static  int i =1;
    public static void main(String[] args){
        System.out.println("Love"+ new ToStringTest());
        ToStringTest a = new ToStringTest();
        a.i++;
        System.out.println("me "+a.i);
    }
    public String toString(){
        System.out.println("I ");
        return "java ";
    }
}

为了说明java中代码的执行顺序。
new ToStringTest()会创建一个ToStringTest的对象;
"Love"+ new ToStringTest(),由于对象不是string,这里系统会自动调用对象的toString方法。
最终会输出:I Love java me 2

这是JAVA程序,上面的回答为正确结果,我运行过了

System.out.println("Love"+ new ToStringTest());
相当于
System.out.println("Love"+ (new ToStringTest()).toString());
相当于
String temp = (new ToStringTest()).toString();
System.out.println("Love"+ temp);
所以可见,I会先输出,然后是Love java

public class ToStringTest { //创建类
static int i =1; //定义静态变量int类型(也称为全局变量-所有该类的对象对其操作都是有效的)
public static void main(String[] args){ //main程序执行主函数
System.out.println("Love"+ new ToStringTest()); //相当于System.out.println("Love"+ new ToStringTest().toString());
ToStringTest a = new ToStringTest(); //创建对象a,此时i=1
a.i++; //将全局变量累加1,i=2
System.out.println("me "+a.i); //打印结果
}
public String toString(){ //ToStringTest类的成员函数toString
System.out.println("I "); //打印I并换行
return "java "; //函数调用的结果返回值
}
}