1:InetAddress:java对ip地址(每个节点或者主机都需要至少一个唯一的数来标识)高层表示。创建InetAddress对象,它会建立本地dns服务器的链接,来查找相对应的主机(如果之前查找过这个地址,这个信息可能会 在本地缓存,那么此时将不会建立链接),如果dns服务器找不到这个地址,将抛出UnKnownHostException.
2:InetAddress缓存:因为dns查找的花销较大,所以InetAddress会缓存查找结果,一旦得到一个已经缓存的地址,那么将不会建立连接,即便重新创建一个新的InetAddress对象亦是如此。负面结果是:有可能第一次尝试解析地址时失败,但是在第二次进行解析时却成功了。那么如果依然进行了缓存,将会一直无法解析该地址,处于这种考虑,InetAddress对查询不成功的地址只会缓存10s.这些时间的属性可以通过networkaddress.cache.ttl(查询成功时缓存的时间)和networkaddress.cache.negative.ttl(查询失败的地址缓存的时间)来控制