1. Yes. As long as no thread modifies the map then it can be shared. Note that ConcurrentHashMaps (thread safe maps) are very fast and their performance is close to regular maps. So in most cases you can just use the thread safe maps.
2. Yes. You can. However when you read the object a regular map will be created.
Consider using a real database for a server app. You can use SQLite databases if you want to have a "zeo configuration" solution: [WebApp] Concurrent access to SQLite databases
Previous work will be modified to thread safe map.
I actually use SQLite db in wal mode a lot. Maps are used to store values need most frequent access.
Raf writeobj/readobject are used to share data with clients.