Я читаю о сборке мусора, и я получаю запутывающие результаты поиска, когда я ищу коллекции строковых литералов String.
Мне нужно уточнить следующие пункты:
-
Если строка во время компиляции определяется как литерал [например:
String str = "java"
], будет ли это сбор мусора? -
Если используется метод intern [например:
String str = new String("java").intern()
], будет ли он собираться мусор? Также будет обрабатываться иначе, чем строковый литерал в точке 1. -
В некоторых местах упоминается, что литералы будут собирать мусор только тогда, когда класс
String
будет выгружен? Имеет ли смысл, потому что я не думаю, что классString
когда-нибудь будет выгружен.