jvm(8)
Java中的泛型
1. 参数化类型:定义方法时的形参,调用方法时传递的实参
2. 常见的字母代表的参数类型
3. E 元素;k 主键 vvalue值 N 数字类型 T 通用性参数
泛型接口
1. 接口中的参数用泛型代替
2. 当使用泛型接口时许哟啊传递实际的参数类型
泛型方法同上
虚拟机如何实现泛型方法
1. 泛型擦除,既实际使用时 已经将泛型 转化成实际的参数类型,泛型只存在源码中
2. 弱记忆: jvm的擦除仅仅是code属性中的字节码擦除,其实还是保留了泛型信息,signature
Stream
1. stream parallelstream ,单线程和多线程的流
2. stream接口,相当于高级版的iterator
3. 为什么要使用stream ,写的快,代码少,(装逼)
stream的操作
1. 中间操作:惰性,既只是调用方法,没有实际执行,除非执行终结方法
2. 中间操作非为有状态和无状态,有状态的接收到之前的结果,既所有元素才会继续执行
3. 终结操作 :既流执行完之前的最后一个动作
4. 终结操作的短路与非短路: 短路既遇到某些符合条件的就停止,非短路需要全部执行完
5.
stream的底层实现
1. 每一个操作可以看成链表的一个节点,最后通过管道组合在一起,实际执行时类似递归的形式
parallelstream stream
1. 比如说普通的迭代速度 》 比并发流快 》 串行流快
2. 因为串行流设计复杂 所以比普通的迭代慢
3. 并发流 用 forkjoin ,但是设计复杂, 有可能产生频繁的线程切换所以比普通的慢
不恋尘世浮华,不写红尘纷扰