Java学习Day5——Spring,ArrayList,Debug,泛型

63 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情

1.Spring

注解:

@Controller:加在控制器类

@Service:加在业务逻辑类

控制反转

对象的创建权转移到了Spring框架,这种思想成为控制反转

依赖注入

如果是框架帮你找这些依赖对象,按一定的规则提供给你,称为依赖注入

@Autowired

image.png

创建一个接口类型数组对象,并加上@Autowired,就可以存放多个对象

image.png

image.png

Spring包结构

image.png

2.ArrayList

数组不能自动扩容,ArrayList可以

代码Demo:

public class TestArrayList {

    public static void main(String[] args) {
        ArrayList a =new ArrayList(5);
        a.add("a");
        a.add("a");
        a.add("a");
        a.add("a");
        a.add("a");
        a.add("a");
        //内部封装了扩容机制,按1.5倍扩容
        System.out.println(a);
    }
}

原理:

若初始数组大小为8,当加到地9个元素时,会按1.5倍新创建一个数组,此时新生成的数组中没有元素,然后把旧数组中的数组全部复制到新数组中,再存放地9个元素,然后删除旧数组

2.Debug

image.png 步过:F8

调试过程中修改代码:

image.png

增强for循环:

public class TestArrayList {

    public static void main(String[] args) {
        ArrayList a =new ArrayList(5);
        a.add("a");
        a.add("a");
        a.add("a");
        a.add("a");
        a.add("a");
        a.add("a");
        //内部封装了扩容机制,按1.5倍扩容
        for(Object e:a){
            System.out.println(e);
        }

    }
}

3.泛型

只支持引用类型

代码Demo:

public class TestArrayList {

    public static void main(String[] args) {

        ArrayList<Integer> a = new ArrayList<>();
        a.add(1);
        a.add(1);
        a.add(1);
        int sum=0;
        for(Integer i:a){
            sum+=i;
        }
        System.out.println(sum);
    }
}

4.List

image.png

List12和ListN属于不可变的List集合:元素一旦确定就不能再向里添加或删除了