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

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原则

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

猜你喜欢

转载自blog.csdn.net/qq_44665418/article/details/107108053