System.out.println("string" == "string"); //output: true
System.out.println("string".toString() == "string"); //output: true
System.out.println("
string ".trim() == "string"); //output: false
So " string ".trim() returns a new String instance of "string" which is not the literal String instance "string"?