java puzzler - URL

看一个问题:

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

 

 

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

解释:

根据 equals 的 API DOC 说明

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


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

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

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

java 中URL类的hashcode:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值