当你测试if语句发现两个字符串明明内容一样却无法用== 当我们发现if语句中两个字符串明明内容一样却无法用来返回true我们就需要考虑这两个字符串的对象是不是不同。最简单的方法就是避免使用双号而是使用对象1.equals(对象2例如username.equalsname当时我从session调用了username并且用url传了name用if语句判断二者是否相等为的是判断我登录的用户名是否与我的发帖人一致若一致则可以删除此帖子若不一致则提示“此贴为其他用户的无法删除”首先我通过运行窗口看输出的username与name是否一致发现一致但程序没有往下走于是我输出usernamename发现返回false。至此我明白问题出在false上了我需要返回的是true才能进行下一步所以我开始考虑是不是两个字符串内容一致但形式不同所以不是完全相等后经过百度了解到我们经常习惯性的写上if(str1str2)这种写法在java中可能会带来问题比如string username123456;string name123456;那么二者相等是可以返回true的。因为在java中字符串的值是不可改变的相同的字符串在内存中只会存一份所以username和name指向的是同一个对象。而new的话就是两个不同对象了使用equals方法会更好一点。StringusernamenewString(123456);StringnamenewString(123456);那么usernamename将返回false此时a和b指向不同的对象。if(username.equals(name))可以返回true啦