java puzzler - URL

来源:互联网 发布:java等级划分英语缩写 编辑:程序博客网 时间:2024/06/17 23:43

看一个问题:

下面的这段程序,输出的是_____。

 

 

答案:联网的时候结果是4,不联网结果是5.

解释:

根据 equals 的 API DOC 说明

如果两个主机名可解析为同一 IP 地址,则认为两个主机相同;如果有一个主机名无法
解析,但两个主机名相等(不区分大小写),或者两个主机名都为 null,则也认为这
两个主机相同。


第一和第二个的 IP 地址是相同的,都是 208.97.154.9 ,所以在 Set 时都把它们当成同一个了。

如果在没有网络的条件,这些都是无法解析成为 IP 地址的,这时就判断 URL 的名字了,仅认为名字
相同时才是相同的 URL。
所以不要把 URL 应用于 Set 和 Map 的 key 中,可以使用 URI 来代替,这样就不存在
有无网络的问题了。

-------------------------------------------------------------------------------

java 中URL类的hashcode:

 

 

原创粉丝点击