还有一种是这样理解的:
一个是把数据放在堆里面,一个是把数据入在栈里面,
当你用String str1 = "aaa "; String str2 = "aaa "; 这种形式是放在堆里面,所以str1 == str2 结果是为true的,当你用String str1 = new String( "aaa ");String str2 = new String( "aaa ");, 这种形式是放在栈里面,当你用str1 == str2进行比较的其实是地址,所以结果当然为false了,用这种形式时就应当用equals,它是比较指针所指向的内容。
你可以用代码试试! |