Я работаю над реализацией двухуровневого кэша в Java для цели обучения. У меня 2 уровня: RAM - первая, а FS - вторая. Я выбрал стратегию LRU для моей реализации и политику «обратной записи» между двумя уровнями. Возможно, вы хотите сделать объекты, хранящиеся на 2-м уровне (файловой системе), актуальными, если объект изменит свое внутреннее состояние? Это обычная практика для двухуровневого кеша?2-уровневая реализация кеша в Java
Как я могу записать свой объект (serialize) в файл в двоичной форме, если все, что я знаю об объекте, состоит в том, что объект является типом объекта? Возможно ли, или я должен сделать требование, что Object должен реализовать Serializable?
EDIT:
Собственно вопрос о внутреннем состоянии - как я могу impelment это?
Вы можете использовать отражение для сериализации вашего объекта, если вы не хотите использовать 'Serializable'. –
«На самом деле вопрос о ...» черт возьми. Вопрос перед вашим редактированием был около двух-трех вещей, и вы спросили **, может ли ** (не * как *) обновить кеш при изменении объекта. Не перемещайте стойки ворот по существующим вопросам - вы должны задать каждый вопрос об одной проблеме и сделать это как можно более ясным. – millimoose
Во всяком случае, для целей упражнения требование иметь объекты явно «Serializable» - для целей кеша FS); и "cacheable" - излучать уведомления или устанавливать грязный флаг, когда их внутреннее состояние изменяется, так что может произойти обратная запись. Java не является ядром операционной системы, не кажется целесообразным попробовать и обучать низкоуровневые методы. (Там, где обычная операционная система, очевидно, может отслеживать любую запись в память.) – millimoose