您的位置:首页 > 职场人生

java集合类面试题以下程序的输出结果是什么

2015-03-07 11:16 357 查看
import java.util.*;

import java.net.MalformedURLException;

import java.net.URL;

public class Test {

private static final String[] URLNAMES = {

"http://www.sina.com",
//IP地址为202.108.33.94

"http://www.nwu.edu.cn", //IP地址为124.115.173.252

"http://javapuzzlers.com", //IP地址为208.97.154.9

"http://www.google.com", //IP地址为64.233.189.147

"http://Javapuzzlers.com", //IP地址为208.97.154.9

"http://apache2-snort.skybar.dreamhost.com", //IP地址为208.97.154.9

};

public static void main(String[] args) throws MalformedURLException{

Set<URL> favorites = new HashSet<URL>();

for(String urlName : URLNAMES)

favorites.add(new URL(urlName));

System.out.println(favorites.size());

}

}

A 一定是4 B .一定是5 C.一定是6 D以上答案皆不正确

答案:D

解析:联网状态下会输出4,URL的equal对比方式。根据文档说明:如果两个主机名可解析为同一IP地址,则认为两个主机相同(即使主机名不等)。

"http://javapuzzlers.com", //IP地址为208.97.154.9

"http://Javapuzzlers.com", //IP地址为208.97.154.9

"http://apache2-snort.skybar.dreamhost.com", //IP地址为208.97.154.9

上面3个IP地址是相同的,都是208.97.154.9 ,所以在Set时都把它们当成同一个。 答案为4.

断网时候,这些都成为无法解析成为IP地址,这时就要判断URL的名字。仅认为名字相同时才是相同的URL。"http://javapuzzlers.com",


"http://Javapuzzlers.com",
因为不区分大小写,所以默认两者相同。答案为5。

出自J***A程序员面试宝典(三) 欧立奇
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐