可能重复:
Java String.equals 与 ==
我正在编写一个程序来模拟兔子和乌龟的比赛!我正在使用 getName() 来查看线程正在执行哪些对象,并在此基础上增加对象值。这是我的代码:
public void run()
{
try{
for(int i=0;i<100;i++)
{
System.out.println(Thread.currentThread().getName());
if(Thread.currentThread().getName() == "HARE")
{
hare++;
System.out.println("hare thread");
Thread.sleep(100);
if(hare == 49)
{
Thread.sleep(2000);
}
}
if(Thread.currentThread().getName() == "TURTLE")
{
turtle++;
Thread.sleep(250);
System.out.println("Turtle Thread");
}
问题是它甚至认为它准确地检测到了线程的名称,但它从来没有进入 if 块。PS我是java多线程的新手。感谢您浏览代码。