2015-01-09 8 views
1

내 질문이 코드에 관한 것입니다 :자바 패키지 가져 오기

import java.util.*; 

나는,이 코드는 모든 Java 패키지를 가져올 것이라고 말했지만, 내 질문은 : 가 더 많은 메모리를 소비합니까? 프로그램에서 내가 뭘 때문에 난 그냥 사용하고 있습니다 : 도움을

import java.util.Scanner; 

import java.util.InputMismatchException; 

감사합니다.

+0

모든 자바 패키지를 가져 오지는 않지만 java.util 패키지의 모든 자바 클래스를 가져옵니다. 컴파일하는 동안에만 관련되므로 런타임 메모리를 추가로 소비하지 않습니다. 편집 속도가 다소 느려질 수도 있지만 눈에 띄지 않습니다. – geert3

+0

@ geert3는 나에게 완벽한 대답처럼 보입니다. – weston

+0

@ geert3 내 친구에게 감사드립니다. – JoseMiguelCab

답변

3

아니요, 지연 유입은 결과 프로그램에 영향을주지 않습니다. 이 질문을보십시오 : Java import vs code performance

lazy imports와 명시 적 imports를 사용하는 것은 가독성의 문제입니다. (당신이 두 개의 패키지에 존재하는 클래스 이름을 참조하는 경우 또한, 당신은 모호성을 해결하기 위해 명시 적으로 가져 오기를해야합니다.)

2

은이 코드는 모든 Java 패키지를 가져옵니다 들었다

아니요, 컴파일러에게 코드 전체 이름이 java.util.List (컴파일러는 전체 이름으로 변경해야 함) 대신 List과 같은 단순한 이름 만 사용했을 때 어떤 패키지가 클래스/인터페이스에 대한 세부 정보를 검색해야하는지 알려줍니다.

일반적으로 *을 피하는 것이 좋습니다. 동일한 이름의 클래스가있는 패키지가 거의 없을 때 문제가 발생할 수 있기 때문입니다. 예를 들어이

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

를 가져 추가하고 List를 사용할 수 있습니다. 컴파일러는 우리가 여기에 무엇을 의미했는지 (예 : java.awt.List 또는 java.util.List) 알 수 없으며 오류를 반환합니다. 우리는

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

우리는 우리의 IDE가 우리를 위해 수입을 생성 할 수 있습니다 특히 이후, 처음에 *을 피하기 위해 시도해야 이러한 문제를 피할 것이 아니라 추가하여 우리가 사용하고자하는 목록의 정확한 위치를 설명하여 해결할 수 있습니다.