Java 内存级默认DNS缓存


Java 默认的DNS缓存时间,即不设置任一系统属性,如networkaddress.cache.ttl

设置SecurityManager

默认的CachePolicy为Forever,即永久缓存DNS的结果,直到进程终止
一般设置SecurityManager 都会设置networkaddress.cache.ttl 因为永久缓存的DNS是有风险的

不设置SecurityManager

缓存30S

cachePolicy 值范围:-1 永久有效;0 不缓存;其余正值 缓存时间

无效的DNS缓存时间

当DNS解析无效的时候,默认10S,目的是为了帮助提升性能

可查看源码InetAddress 和 InetAddressCachePolicy