code: private void loadReadOnly() {
          checkState(_segmentMap.isEmpty()); // Only supported for newly allocated queue objects
          checkState(_readOnly);
  
          // Load the segment persistent state from disk.
          for (Map.Entry<UUID, String> entry : _dao.loadSegments(_name).entrySet()) {
              UUID id = entry.getKey();
              Segment seg = newSegmentFromSnapshot(id, entry.getValue());
  
              // Don't bother sorting segments, adjusting min or removing overlap.  They're not necessary
              // when loading a read-only persistent queue.
              while (_segmentMap.containsKey(seg.getMin())) {
                  seg.setMin(successor(seg.getMin()));
              }
              _segmentMap.put(seg.getMin(), seg);
          }
      }
docs: Loads the segment persistent state from disk and initializes in-memory state such that read-only
  operations like {@link #sizeEstimate()} and {@link #scan(java.nio.ByteBuffer, long)} will return
  reasonable results, but doesn't bother setting up the split queue or removing overlap between
  segments since those are only strictly required for full read/write operation.