Используется ли неиспользуемый импорт - import android.widget.RelativeLayout; есть память? Просто хотите знать, насколько это или просто ценно? Может быть, это глупый вопрос, но я не нашел ответа.
Использует ли неиспользуемая декларация импорта память на Java?
Ответ 1
Нет, они не берут память. Импорт используется компилятором для разрешения имен классов во время компиляции.
Компилятор изменяет каждое имя класса на полное имя. И удаляет оператор импорта. Таким образом, оператор import не делает это байтовым кодом.
Единственной проблемой, которая может возникнуть при использовании подстановочного импорта, является конфликт пространства имен, т.е. когда два типа с тем же именем определяются в двух разных пакетах, тогда импорт этих пакетов с помощью подстановочных знаков приведет к конфликту имен имен для этого типа.
Чтобы узнать, как компилятор заменяет оператор import, вы можете сгенерировать байт-код вашего класса с помощью команды javap
. Рассмотрим приведенный ниже код:
import java.util.*;
import java.util.regex.*;
public class Test {
public static void main(String[] args) {
}
}
Просто скомпилируйте приведенный выше код и проверьте код байта, используя следующую команду:
javap Test
Он выдает следующий вывод:
public class Test {
public Test();
public static void main(java.lang.String[]);
}
Итак, вы можете видеть, что тип String
заменяется на его полное имя java.lang.String
, и в байтовом коде нет инструкции import.
Ответ 2
Нет, компилятор удаляет их после компиляции. Но вы можете столкнуться с двумя проблемами:
- беспорядок кода
- Если вы импортируете некоторые классы из jar и позже удалили jar, но не импортировали, вы можете получить ошибку времени компиляции
Ответ 3
Не влияет на время выполнения. Это может сделать процесс компиляции очень маленьким (неизмеримым) медленнее. Но что касается их наличия, лучше удалить их, потому что они уменьшают размер файлов и упрощают чтение того, что импортируется на самом деле.
Ответ 4
Неиспользуемый импорт не влияет на время выполнения (поскольку в байтовом коде нет импорта). Однако неиспользуемые импорты будут влиять на компилятор, но не на много.
В общем, импорт только того, что вам нужно, приведет к улучшению ремонтопригодности и удобочитаемости кода.
Ответ 5
Не влияет на время компилятора rumtime,
но лучший подход заключается в том, чтобы написать самый чистый и простой код, который может помочь, поскольку это улучшает ремонтопригодность кода и помогает обеспечить его работоспособность даже после его изменения.
Документация: Рекомендации по эффективности