完整包导入.*和指定类导入java之间的区别?

Vam*_*ani 4 java

可能重复:
为什么使用带有Java import语句的通配符不好?

防爆.1

import javax.swing.*

JFrame f = new JFrame()
Run Code Online (Sandbox Code Playgroud)

防爆.2

import javax.swing.JFrame

JFrame f = new JFrame()
Run Code Online (Sandbox Code Playgroud)

在适应2)而不是1)中是否有任何效率增益(即使是最轻微和最小)?java如何在内部引用包?

第一次编译器遇到单词JFrame时,我认为它应该在完全摆动中搜索JFrame.*包在1)的情况下.否则如果在情况2)中,它可能直接由某些人获得该类索引或可能是键值散列?那么为什么即使它很小,这也不被视为效率增益?(如果我对内部的假设是错误的,请纠正我)

编辑:

对不起,重复..答案为什么使用带有Java导入语句的外卡不好?

Nou*_*lan 9

使用import javax.swing.*并在Java中导入javax.swing.JFrame没有运行时间损失.唯一不同的是在编译时,导入包.*将搜索整个包以找到正确的类信息.

Single-Type-Import(例如,import javax.swing.JFrame)增加了程序的可读性,并且将非常清楚使用了哪些类.

Type-Import-on-Demand(例如import javax.swing.*)导致在javax.swing包中声明的所有公共类型的简单名称在编译单元的类和接口声明中可用.