• 依赖注入的方式测试ArrayList和LinkedList的效率(对依赖注入的再次理解)


    9/20 号再进行学习

    在C++中,main函数尽可能的简单,只要调用子函数的一句话就实现了功能。

    java开发中,controller就相同于是main函数,其他类的方法不在本类中时候,

    1.可以用new对象的方法,调用那个方法

    2.用依赖注入的方式,将其他类的对象注入到main函数的类中,然后就可以调用这个方法了

    先贴结果


    项目结构


    8/22添加
    链表的优势是插入和删除,劣势是查找
    数组的优势的查找,劣势的插入删除
    在9999999*2个整数中进行查找的效率对比
    ArrayListTest used a total time is 1 millisecondes !(有时测出来是0)
    linkedList used a total time is 15 millisecondes !

    从序列中删除一个数字的效率对比
    ArrayListTest used a total time is 15 millisecondes !
    linkedList used a total time is 0 millisecondes !

    使用配置文件的方式

    package com.baobaotao1;
    import java.util.Date;
    import java.util.List;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Test {
        //往这个类里面注入了2个对象
        private List<Integer> list01;
        private List<Integer> list02;
        
        public void setList01(List<Integer> list01) {
            this.list01 = list01;
        }
        public void setList02(List<Integer> list02) {
            this.list02 = list02;
        }
      public  void vs(List<Integer> list){
            long t1 = new Date().getTime();
            list.add(1); list.add(2);list.add(3);
            for(int i=1;i<99999;i++){
                list.add(1,i);
            }
            long t2 = new Date().getTime();
            System.out.println("时间是"+(t2-t1));
        } 
      public void test(){
        this.vs(list01);
        this.vs(list02);
      }
      public static void main(String[] args) {
        //new CarTest().test(); 
         //上面的这种测试的话,加载不了配置文件,空指针异常,在tomcat服务器中运行的web项目中会自动加载
          // web项目中,要么自动去加载xml文件,要么根据web.xml文件的配置去加载application.xml文件
           ApplicationContext ctx = 
                new ClassPathXmlApplicationContext("applicationContext.xml"); 
           Test c = (Test) ctx.getBean("carTest");
           c.test();
        }
    
    }
    在WEB-INF 这个目录下,这个文件夹下的web.xml文件会被自动加载并读取,
    回答:tomcat会自动加载web.xml文件,部署在tomcat的WEB-INF文件夹下的.xm文件,
    只有web.xml文件会被自动加载,如在这个目录下还有其他的xml文件,需要在web.xml文件里配置

    配置文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
               http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
               http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
       
        <bean id="list1" class="java.util.ArrayList" ></bean>
        <bean id="list2" class="java.util.LinkedList"></bean>
        
        <bean id="carTest" class="com.baobaotao1.CarTest">
            <property name="list01" ref="list1"/>
            <property name="list02" ref="list2"/>
        </bean>

    </beans>



    注解进行测试

    package com.baobaotao1;
    
    import java.util.Date;
    import java.util.List;
    import javax.annotation.Resource;
    /*下面的这2个注解用于 new ClassPathXmlApplicationContext*/ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { @Resource //按照list01这个名称进行注入 private List<Integer> list01; @Resource private List<Integer> list02; //面向接口编程List<Integer>完全降低了耦合,完全没有实现类的影子 public void vs(List<Integer> list){ long t1 = new Date().getTime(); list.add(1); list.add(2);list.add(3); for(int i=1;i<9999;i++){ list.add(1,i); } long t2 = new Date().getTime(); System.out.println("时间是"+(t2-t1)); } public void test(){ this.vs(list01); this.vs(list02); } public static void main(String[] args) { // new CarTest().test(); 用这种方式去加载xml配置文件的话,也会空指针 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); Test c = (Test) ctx.getBean("carTest"); c.test(); } }

    配置文件如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"  
        xmlns:context="http://www.springframework.org/schema/context"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
               http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd        
               http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
               http://www.springframework.org/schema/context
               http://www.springframework.org/schema/context/spring-context-2.5.xsd">
      
        <!--这句话必须有,以及上面的那些必须有(这是进行注解开发所必须要的)-->
        <context:component-scan base-package="com.baobaotao1"></context:component-scan>
       
        <bean id="list01" class="java.util.ArrayList" ></bean>
        <bean id="list02" class="java.util.LinkedList"></bean>  
        <bean id="carTest" class="com.baobaotao1.Test"></bean> 
        //传入这个包名+类名 一般用到的都是反射机制
    </beans>
  • 相关阅读:
    设置navigationBar透明,隐藏iOS导航条底部与self.view的分界线
    毛玻璃效果
    手动代码约束,等比例
    UIScrollView基本用法和代理方法
    swift学习笔记
    设置子视图背景颜色不影响到父视图的背景颜色方法
    JS内置对象
    JS创建自定义对象
    dom添加事件
    dom对象操作Html,Css
  • 原文地址:https://www.cnblogs.com/cs-lcy/p/7407180.html
Copyright © 2020-2023  润新知