2015-01-09 4 views
1

мой вопрос об этом коде:Java Импорт пакета

import java.util.*; 

мне сказали, что этот код будет импортировать все пакеты Java, но мой вопрос: он потребляет ли больше памяти? Потому что в программе я делаю, я просто с помощью:

import java.util.Scanner; 

и

import java.util.InputMismatchException; 

Спасибо за помощь.

+0

Это не импортирует все пакеты java, но все классы java в пакете 'java.util'. Он не будет потреблять дополнительную память во время выполнения, поскольку это актуально только во время компиляции. Компиляция может быть немного медленнее, но это вряд ли будет заметно. – geert3

+0

@ geert3, который кажется мне полным ответом - зачем ставить комментарий? – weston

+0

@ geert3 спасибо моему другу. – JoseMiguelCab

ответ

3

Нет, ленивый импорт не влияет на полученную программу. См. Этот вопрос: Java import vs code performance

Использование ленивого импорта против явного импорта - скорее вопрос читаемости. (Кроме того, если вы ссылаетесь на имя класса, который присутствует в двух пакетах, вам нужно явно импортировать для разрешения неоднозначности.)

2

мне сказали, что этот код будет импортировать все пакеты Java

Нет, он просто сообщает компилятору, какие пакеты должны искать информацию о классе/интерфейсе, когда мы использовали в коде только простое имя, например List, вместо полного имени java.util.List (компилятор должен изменить каждое простое имя на свое полное имя).

Как правило, лучше избегать *, так как это может вызвать проблемы, когда несколько пакетов имеют классы с одинаковым именем. Например позволяет добавить этот импорт

import java.util.*; 
import java.awt.*; 

и использовать List. Компилятор не будет знать, какой из List мы имели в виду здесь (java.awt.List, или java.util.List) и вернем ошибку. Мы можем решить эту проблему, описывая точное местоположение списка, который мы хотим использовать, добавив

import java.util.*; 
import java.awt.*; 
import java.util.List;// <-- solves List problem 

но, чтобы избежать таких проблем, мы должны стараться избегать * в первую очередь, тем более, что наши Иды может генерировать импорт для нас.

Смежные вопросы