zoukankan      html  css  js  c++  java
  • 关于担心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等编辑器会直接报错。

  • 相关阅读:
    HDU2897( 巴什博奕变形)
    HTML小知识点积累
    几种自己主动运行js代码的方式
    leetcode笔记:Contains Duplicate
    【Nutch基础教程之七】Nutch的2种执行模式:local及deploy
    为什么使用模板
    前端编程提高之旅(十)----表单验证插件与cookie插件
    【HDOJ 5399】Too Simple
    进程间通信之-信号signal--linux内核剖析(九)
    iOS类的合理设计,面向对象思想
  • 原文地址:https://www.cnblogs.com/nvsky/p/11289174.html
Copyright © 2011-2022 走看看