code: protected void evict() {
          for (int i = 0, len = _segments.length; i < len; i++) {
              if (_segments[i].blockBitSet.isEmpty()) {
                  final Deque<Segment> queue = _segmentQueueMap.get(i);
  
                  if (queue != null) {
                      synchronized (queue) {
                          if (_segments[i].blockBitSet.isEmpty()) {
                              synchronized (_segmentBitSet) {
                                  queue.remove(_segments[i]);
  
                                  _segmentQueueMap.remove(i);
                                  _segmentBitSet.clear(i);
                              }
                          }
                      }
                  }
              }
          }
      }
docs: recycle the empty Segment.