code: private void initialize(ULocale locale) {
          ICUResourceBundle bundle = (ICUResourceBundle)ICUResourceBundle.getBundleInstance(
                  ICUData.ICU_ZONE_BASE_NAME, locale);
          _zoneStrings = (ICUResourceBundle)bundle.get(ZONE_STRINGS_BUNDLE);
  
          // TODO: Access is synchronized, can we use a non-concurrent map?
          _tzNamesMap = new ConcurrentHashMap<String, ZNames>();
          _mzNamesMap = new ConcurrentHashMap<String, ZNames>();
          _namesFullyLoaded = false;
  
          _namesTrie = new TextTrieMap<NameInfo>(true);
          _namesTrieFullyLoaded = false;
  
          // Preload zone strings for the default time zone
          TimeZone tz = TimeZone.getDefault();
          String tzCanonicalID = ZoneMeta.getCanonicalCLDRID(tz);
          if (tzCanonicalID != null) {
              loadStrings(tzCanonicalID);
          }
      }
docs: Initialize the transient fields, called from the constructor and
  readObject.
  
  @param locale The locale