Bởi vì chi phí thời gian cho việc tìm kiếm DNS là khá đắt đỏ (mất vài giây để yêu cầu được gửi qua một loạt các máy chủ hoặc là có host không tìm thấy được), do đó lớp InetAddress lưu kết quả tìm kiếm vào vùng nhớ đệm. Khi nó có được địa chỉ của một host nào đó nó sẽ không thực hiện tìm kiếm lại thậm chí cả khi chúng ta tạo ra một InetAddress mới cho cùng một host. Địa chỉ IP của host đó sẽ không thay đổi khi chương trình đang chạy.
Với những kết quả không tốt (như không tìm thấy host), lớp InetAddress sẽ chỉ lưu giữ kết quả này trong 10 giây.
Thời gian lưu giữ các kết quả tạm thời có thể được điều chỉnh trong lớp
networkaddress.cache.ttl và lớp networkaddress.cache.negative.ttl. Lớp networkaddress.cache.ttl sẽ quy định thời gian tồn tại của những truy vấn DNS thành công trong khi lớp còn lại sẽ quy định thời gian tồn tại của những truy vẫn DNS không thành công. Nếu cố gắng tìm kiếm cùng một host trong khoảng thời gian quy định sẽ cho về cùng một kết quả. Giá trị -1 sẽ đồng nghĩa với việc “không bao giờ hết hạn”.
Bên cạnh việc lưu kết quả trong vùng nhớ đệm của lớp InetAddress, máy cục bộ, máy chủ tên miền cục bộ hoặc các máy chủ DNS cũng có thể lưu kết quả của mình trong một vùng nhớ đệm của nó trong một khoảng thời gian nhất định. Java không thể can thiệp vào việc lưu giữ kết quả tạm thời này. Do đó, có thể mất nhiều giờ để thay đổi địa chỉ IP tương ứng với host (hoặc tên miền) trên Internet là điều rất có thể xảy ra. Trong khoảng thời gian ấy, chương trình của chúng ta cũng có thể gặp phải những lỗi xảy ra, bao gồm các ngoại lệ như UnknownHostException,