Java - Common Gotchas

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

本着其他平台的精神,跟进这个问题似乎是合乎逻辑的:Java中常见的非显而易见的错误是什么?看起来他们应该工作的东西,但不要。

我不会给出如何构建答案的指导方针,也不会给出指导方针,因为这就是投票的目的。

也可以看看:

提问于
用户回答回答于
"a,b,c,d,,,".split(",").length

返回4,而不是 7,你可能(我当然)期望。split忽略所有返回的空尾字符串。这意味着:

",,,a,b,c,d".split(",").length

返回7!为了得到我认为是最“least astonishing”的行为,你需要做一些非常惊人的事情:

"a,b,c,d,,,".split(",",-1).length

得到7。

用户回答回答于

比较使用对象的等式==而不是.equals()- 对于基元的行为完全不同。

这种疑难杂症,确保新人都昏昏沉沉的时候"foo" == "foo",但是new String("foo") != new String("foo")

扫码关注云+社区