java语法糖和泛型入门——复习

    技术2023-10-11  82

    for-each

    不可以删除元素 只能正向遍历 不能同时遍历两个集合

    enum(枚举类型)

                 内有多少值,就有多少实例对象,不能直接new枚举对象

                  还可以添加属性,构造函数,方法。

                   构造函数之能是default,private内部调用

    不定向参数

    类型后面加3个点   ... 本质上是一个数组

    一个方法只能有一个不定向参数,必须位于参数列表的最后

     

    静态导入 import static

    自动装箱和拆箱

            基本类型boolean/byte/char/int/short/long/float/double

            对象boole/Byte/Character/Integer/Short/Long/Float/Double

            ==,基本类型是内容是否相同,对象的时候是判断指针是否相同

    多异常并列 | 管道符号 异常之间不能有继承关系

    整数类型二进制直接赋值

    数值字面在数字之间可以使用下划线

    接口

    接口的默认方法 default 非权限 默认方法的标志 带实现 可以被子类继承

    接口的静态方法 static 无法传给子类 对象无法调用

    接口的私有方法 private 无法传给子类

    接口都不能被实例化(new)

    try-with-resource

    原理:资源对象必须实现AutoCloseable接口,即实现close()方法。自动关闭,可直接使用外部资源 var类型

    局部变量推断(个人感觉类似python) 本质上还是强类型,编译器自动推断类型,推断以后不能更改类型多

    不能用在方法(形式)参数和返回类型中

    分支合并 switch -> 直接连接判定条件和动作

    泛型<>

         好处 可以被不同类型的对象所引用

         本质 参数化类型,避免类型转换,代码可复用

         泛型类 在类名后用<T>代表引入的类型

         泛型接口 实现接口时,指定类型。<T>中T也可以再是泛型

         泛型方法 <T>在修饰符后,返回类型前

        

         上界限定符extends

    只能get,不能set,因为编译器不知道放入的是什么类型,只能保证出来的是什么类型,肯定可以转型到S(用S可以接收)

    下界限定符super

    只能set,不能get。编译器保证放入的是s类或者s的超类,但不能保证出来的是什么类型,只能用object来接收

        pari<T>和pari<S> 泛型之间没有任何关系(继承等等),无论T和S之间是什么关系

         pecs原则

         <?>无限定通配符,可以表示任意类型

     

     

    Processed: 0.012, SQL: 9