docs: def write_string(self, obj, use_reference=True):
          """
          Writes a Java string with the TC_STRING type marker
  
          :param obj: The string to print
          :param use_reference: If True, allow writing a reference
          """
          if use_reference and isinstance(obj, JavaString):
              try:
                  idx = self.references.index(obj)
              except ValueError:
                  # String is not referenced: let _writeString store it
                  self._writeStruct(">B", 1, (self.TC_STRING,))
                  self._writeString(obj, use_reference)
              else:
                  # Reuse the referenced string
                  logging.debug(
                      "*** Reusing ref 0x%X for String: %s",
                      idx + self.BASE_REFERENCE_IDX,
                      obj,
                  )
                  self.write_reference(idx)
          else:
              # Don't use references
              self._writeStruct(">B", 1, (self.TC_STRING,))
              self._writeString(obj, use_reference)