Может ли дополнительный импорт в Java замедлить время загрузки кода? - PullRequest
7 голосов
/ 14 марта 2010

Возможно ли, что добавление дополнительных операторов импорта в ваш код Java может замедлить время, необходимое для загрузки ваших классов в JVM?

Ответы [ 4 ]

16 голосов
/ 14 марта 2010

Нет, импорт используется только при компиляции для поиска ссылок на классы. Добавить неиспользованный импорт, и они ничего не делают. Другими словами:

import java.util.*;

просто означает, что вы можете написать:

Map map = new HashMap();

вместо:

java.util.Map map = new java.util.HashMap();

Это все, что он делает.

5 голосов
/ 14 марта 2010

Импорт может влиять на время компиляции , но не на время загрузки или время выполнения. По сути, если вы импортируете ненужные классы (как правило, с помощью импорта по шаблону, когда это сделает явный импорт), вы можете немного замедлить компилятор.

Однако даже этот эффект обычно тривиален, если вы не компилируете огромную систему.

5 голосов
/ 14 марта 2010

Нет. Импорт - это просто конструкция времени компиляции ... синтаксический сахар.

Импорт сообщает Java-компилятору, как сопоставить идентификаторы в исходном коде с полностью определенными именами классов. Но если исходный код не использует импортированный класс, файл байт-кода не будет иметь ссылок на него. Следовательно, избыточный импорт не влияет (и не может влиять) на время загрузки класса.

4 голосов
/ 14 марта 2010

Не путайте слово «импорт» с «загрузкой классов». Оператор импорта не приводит к загрузке кода в память. Это просто удобство, которое позволяет вам ссылаться на классы, используя их краткое имя вместо того, чтобы вводить полное имя класса (например, «Соединение» вместо «java.sql.Connection»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...