@Test
public void parseDomain() throws IOException {
for (int i = 0; i < 10000000; i++) {
String urlAddress = "http://www.roseindia.net/jsf/JSFLoginApplication.shtml";
URL url = new URL(urlAddress);
assertEquals("www.roseindia.net", url.getHost());
assertEquals("/jsf/JSFLoginApplication.shtml", url.getPath());
assertEquals(-1, url.getPort()); // -1 if not set
assertEquals("http", url.getProtocol());
}
}
@Test
public void parseDomainByStringUtils() {
for (int i = 0; i < 10000000; i++) {
String urlAddress = "http://www.roseindia.net/jsf/JSFLoginApplication.shtml";
assertEquals("www.roseindia.net", StringUtils.split(urlAddress, ":/")[1]);
assertEquals("http", StringUtils.split(urlAddress, ":/")[0]);
}
}
代码可读性比较:使用URL类更优雅
性能比较:URL类解析7s, StringUtils解析使用18s
why not URL class?
--end
本文通过两个测试案例对比了使用Java内置URL类与StringUtils方法在解析URL方面的性能表现。结果显示,尽管两者均可用于从URL中提取主机名、路径等信息,但URL类在解析效率上明显优于StringUtils,分别耗时7秒和18秒完成相同数量的数据解析。
1023

被折叠的 条评论
为什么被折叠?



