Я кэширую объекты подключения к базе данных через WeakHashMap как нравится:
Connection conn;
if (connectionCache.get(jdbc.getConnectionURL()) == null) {
conn = DriverManager.getConnection(jdbc.getConnectionURL(), jdbc.getUsername(), jdbc.getPassword());
connectionCache.put(jdbc.getConnectionURL(), conn);
} else {
conn = connectionCache.get(jdbc.getConnectionURL());
}
Возможно ли это:
Если инструкция проверена и замечено, что в кэше уже есть объект и перед запуском инструкции else кэш недействителен?
Технически это так, но крайне редко. Решение довольно простое, хотя:
Если вы хотите использовать значение, зарегистрированное в if, которое не было null, вы можете просто назначить его в if, поэтому вам не нужно снова извлекать его из кэша в else: