Я управляю проектом на Java, в котором хранятся пользовательские данные. Пользователи могут быть онлайн или офлайн. Когда пользователи находятся в сети, их данные загружаются в объект данных для облегчения доступа и выгружаются, когда они выходят из системы.
Однако для пользователей, не подключенных к сети, в интересах предотвращения потери данных из-за одновременного доступа к данным из нескольких команд, одновременно манипулирующих данными, я сохраняю карту слабых мест в качестве кеша загруженных объектов пользовательских данных. Если кому-то потребуется доступ к автономному объекту данных для его изменения, система сначала проверит кеш, прежде чем загружать его из файла.
Единственное, что я могу придумать, как их сохранить, это строковый ключ, который представляет имя пользователя пользователя. Но из-за того, как работает java, это не всегда работает из-за системы кэширования строк виртуальной машины.
Первоначально я думал об использовании обертки строк, но опять же из-за того, как работают хэш-карты (с использованием хэш-кода), создание новой оболочки строки не даст мне нужного мне значения, и если бы я сохранил обертки строк, это помешало бы цели постоянно сохраняя сильную ссылку на ключ (предотвращая удаление ключа из карты слабых мест).
Может быть, я просто не понимаю, как должна использоваться карта слабости :S Если это не то, как предполагается использовать карту слабости, я готов принять другие идеи о том, как делать то, что я хочу.