• 关于担心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等编辑器会直接报错。

  • 相关阅读:
    npm ci fast install All In One
    WebGL & CG All In One
    StackOverflow winterbash 2021 All In One
    jira advanced searching All In One
    localStorage undefined bug All In One
    vcharts bug All In One
    crypto.getRandomValues & Math.random All In One
    Web 3D 技术 All In One
    企业微信如何设置用户当前状态 All In One
    parent.postMessage bug All In One
  • 原文地址:https://www.cnblogs.com/nvsky/p/11289174.html
Copyright © 2020-2023  润新知