1. Stream API概述前置知识:Stream API 是Java8的一大亮点,是对集合(Collection)对象的极大增强。它专注于对集合对象进行各种非常便利、高效的聚合操作。或者大批量数据操作。Stream API借助于同样新提供的Lambda表达式,极大提高了编程效率和程序可读性。同时它提供了串行和并行两种模式进行聚合操作。并发模式能更充分的利用到多核处理器的优势,使用fork...
概念Arrays类中的sort方法承诺可以对对象数组进行排序,但要满足下面两个条件之一:对象所属的类必须实现Comparable接口。额外传入一个Comparator对象Comparable如果这个类是自己写的,实现一个比较接口Comparable就可以使用Arrays工具类了。public class Person implements Comparable<Person>{ ...
1. 基本概念什么是泛型?泛型用来做什么?在有泛型类之前,程序员必须使用Object编写适用于多种类型的代码,这不仅繁琐,且很不安全(无类型推断来做编译前检测)。泛型程序设计意味着编写的代码可以对多种不同类型的对象重用。例如,你不希望为收集一组String和File对象分别写两个类。实际上我们使用的ArrayList类就可完成这个工作。它就是一个泛型类。2. 泛型类泛型类(generic c...
I/O 模型I/O读写基本原理在用户程序进行IO的读写,依赖底层的IO读写,基本上会使用到底层的read/write两大系统调用。这里涉及到一个基础知识,read系统调用,并不是直接从物理设备把数据读取到内存中;write系统调用,也不是直接把数据写入到物理设备。上层应用无论是调用操作系统的read,还是调用操作系统的write,都会涉及到缓存区,具体来说,调用操作系统的read,是把数据从...
Socket套接字简介Socket是网络上运行两个程序之间的双向通信链路的断点。Socket绑定到一个端口号,使得TCP层可以标识数据最终要被发送到哪个应用程序。java.net包中提供了一个类Socket,用于Java程序和网络其他程序之间的双向连接,Socket类隐藏了任何特定系统的细节,通过操作java.net.Socket类,Java程序可以通过独立于平台的方式与网络进行通信。此外j...