Java

「Java」NIO选择器

NIO 框架的选择器(`Selector`)提供了选择执行已就绪任务的能力。<br> 通过使用 NIO(None-blocking I/O),你可以实现同步非阻塞,相比同步阻塞(对应BIO,Blocking I/O),其优点在于: - NIO 的 Selector 提供了多路复用机制,当一………


「Java」线程间协作

&emsp;当一个线程的执行依赖于另一个线程时,就需要协调线程间的关系。**协作一般用于同个对象上派生出的多个线程。** <br> ### 一、挂起与唤醒 #### 1. wait &emsp;`wait()`方法使得使得你可以等待某个条件发生变化,而改变这个条件超出了本方法的控制能力………


「Java」中断任务

任务中断的时机分两种: 1. 阻塞时中断; 2. 其他时间的中断。 中断操作在线程运行的不同时机产生的效果不同,且不同类型的阻塞也会产生不同效果。 <br> *首先介绍一下阻塞:* ### 一、阻塞 &emsp;线程仍具备运行的能力,但某个条件阻止其运行。当线程处于阻塞时,调………


「Java」线程资源共享

并发编程的一大难题就是处理好共享资源间的竞争。 <br> ### 一、同步机制 #### 1. synchronized &emsp;Java以关键字`synchronized`提供了防止资源冲突的内置支持。当任务要执行被`synchronized`保护的代码片段时,它将检查锁是否可用………


「Java」Java并发编程

- 并行:系统中同一时间有两个或多个动作在**同时执行**。 - 并发:而并发是指代码逻辑上可以并行,具有并行潜力。但实际能否并发运行取决于代码的运行环境,*只有在多核处理器环境下,才可能真正实现并行*,否则任一时间点上都只有一个动作在执行,程序只是在不同动作之间来回切换,此时并行只存在于逻………


「Java」InetAddress类

- IPv4:四个字节(如:106.54.53.126) - IPv6:十六个字节,分为8个区块,每块4个十六进制数字。(如:2001:4860:4860:0000:0000:0000:0000:8888) > 对于IPv6:<br> >1. 当地址以0区块开头时,可以省略; >2. 每个区块中………


「Java」基本数据流操作

<br> <img src="/media/blog_image/file_1584535688000.png" width="780px" /> <br><br> ### 一、中间操作 &emsp;中间操作会返回另一个流,可以用之间操作将流串联起来;且==串联的中间操作只有在遇到终端操作………


「Java」函数式数据处理

&emsp;&emsp;流(`java.util.stream.Stream`)允许以声明性方式处理数据集合,可以将流看成是一种遍历数据集的高级迭代器。<br><br> *使用流处理数据有以下几点好处:* 1. 代码以声明式编写; 2. 将基础操作链接起来,来表达复杂的数据处理流水线; 3………


「Java」Lambda表达式

&emsp;在Java8之前,若要传递策略,则只能将方法包裹在一个对象中进行传递(如实现`Comparator`接口传递比较策略)。而Java8中提供了`lambda`表达式,使得我们可以以一种更加灵活、简明的方式传递代码。可以将lambda表达式理解为匿名函数(Java8中新引入了函数,函数可以………


「Java」行为参数化传递代码

&emsp; ### 行为参数化 &emsp;行为参数化,即可以将代码快作为参数传递给一个方法,这样,就称该方法的行为基于代码块被参数化了。使用行为参数化(而值参数化)使得代码更加灵活,即可以重复使用同一个方法,只需定义一组算法(策略),给方法传递不同的策略达到不同的目的。 ```java // ………


「Java」基础知识

#### 一、导论 - 三种平台的Java版本: 1.Java SE:标准版,桌面开发与低端商务应用; 2.Java EE:企业版; 3.Java ME:小型版,嵌入式开发 &emsp; - JDK:Java Development Kit,Java语言开发工具包; - JRE:Java Run………