共同的问题
本着其他平台的精神,跟进这个问题似乎是合乎逻辑的:Java中常见的非显而易见的错误是什么? 看起来他们应该工作的东西,但不要。
我不会给出如何构建答案的指导方针,也不会给出指导方针,因为这就是投票的目的。
也可以看看:
比较使用==
而不是.equals()
的对象的等.equals()
- 对于基元的行为完全不同。
当"foo" == "foo"
但new String("foo") != new String("foo")
时,这个gotcha确保新手感到困惑。
"a,b,c,d,,,".split(",").length
返回4, 而不是 7,你可能(我当然是)期望。 split
忽略所有返回的空尾字符串。 这意味着:
",,,a,b,c,d".split(",").length
返回7! 为了得到我认为是最“令人惊讶”的行为,你需要做一些非常惊人的事情:
"a,b,c,d,,,".split(",",-1).length
得到7。
重写equals()而不是hashCode()
使用地图,集合或列表时,它可能会有非常意想不到的结果。
链接地址: http://www.djcxy.com/p/17897.html上一篇: Common Gotchas