关于担心java import xxx.*对资源占用的一次小实践

前几天公司整理开发规范文档,有一条是禁止import xxx.*,记得读书的时候老师告诉讲import *并不会对资源或性能有什么实质的影响,于是做了一次实现。

首先建一个Test测试类:

import java.util.ArrayList;
import java.util.*;//idea会自动将超过3个同类的引入合并成.*,这里是不是已经暗示着真相了(滑稽)

/**
 * @author :shenzhikui
 * @description:TODO
 * @date :2019/8/2
 */
public class Test {
    public static void main(String[] args) {
        Date date = new Date();
        List list = new ArrayList<>();
        Map map = new HashMap();
    }
}

然后编译,查看class文件:

结果显而易见,java文件经过编译后只会导入有用的jar包,为什么说是有用的包?我们再看一个例子:

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.HashMap;//这里为了直观,手动把*拆开了

/**
 * @author :shenzhikui
 * @description:TODO
 * @date :2019/8/2
 */
public class Test {
    public static void main(String[] args) {
        Date date = new Date();
        List list = new ArrayList<>();
        //Map map = new HashMap();//把map去掉
    }
}

此时,Map和HashMap已经没用了,在编辑器上也显示灰色,然后编译查看class:

Map和HashMap被过滤掉了

结论

import xxx.*并不会对性能或资源造成影响,如果要说影响,可能就是对代码可读性的影响,比如没删除无用的引入上面总是显示灰色不太美观,或者使用*之后不能直观的看出此类引入了哪些类库等等,类似书写规范的要求。当然,有一种情况是你使用了两个类库的同名类,会导致引用矛盾,不过这种情况像idea等编辑器会直接报错。

原文地址:https://www.cnblogs.com/nvsky/p/11289174.html