随笔 - 1162
文章 - 0
评论 - 16
阅读 -
59万
02 2022 档案
01一、学海无涯,再出发!【2020.02.14-25】
摘要:前言: 金三银四跳槽季!跳槽不仅仅是因为薪资上面的差距,更多的是需要不断扩宽自己的视野,强迫自己走出舒适区,与高手过招才能有所成长。 经历了两周的面试,暂告一阶段了,在此期间认识到了自己的不足,也从此中学习了很多知识和思想,做个简单的复盘总结,下面就以时间线为基准,进行小结: 2月14日 17点:X
阅读全文
第三章—Java NIO编程:(4)Channel 通道
摘要:一、Channel 基本介绍 (1)NIO 的通道类似于流,但有些区别如下: ① 通道可以同时进行读写,而流只能读或者只能写; ② 通道可以实现异步读写数据; ③ 通道可以从缓冲读数据,也可以写数据到缓存; (2)BIO 中的 stream 是单向的, 例如 FileInputStream 对象只能
阅读全文
第三章—Java NIO编程:(3)Buffer 缓冲区
摘要:一、缓冲区(Buffer)基本介绍 缓冲区(Buffer) : 缓冲区本质上是一个可以读写数据的内存块, 可以理解成是一个容器对象(含数组), 该对象提供了一组方法, 可以更轻松地使用内存块,缓冲区对象内置了一些机制, 能够跟踪和记录缓冲区的状态变化情况。 Channel 提供从文件、网络读取数据的
阅读全文
第三章—Java NIO编程:(2)Java NIO 三大核心原理示意图
摘要:NIO 三大核心原理示意图 一张图描述NIO 的 Selector 、Channel 和 Buffer 的关系 关系图说明: (1)每个channel 都会对应一个Buffer; (2)Selector 对应一个线程, 一个线程对应多个channel(连接); (3)该图反应了有三个channel
阅读全文
第三章—Java NIO编程:(1)Java NIO 基本介绍
摘要:一、Java NIO 基本介绍 (1)Java NIO 全称 java non-blocking IO, 是指 JDK 提供的新API。 从 JDK1.4 开始, Java 提供了一系列改进的输入/输出的新特性, 被统称为 NIO(即 New IO), 是同步非阻塞的。 (2)NIO 相关类都被放在
阅读全文
第二章—Java BIO 编程:(2)Java BIO 编程
摘要:一、Java BIO 基本介绍 (1)Java BIO 就是传统的java io 编程, 其相关的类和接口在 java.io; (2)BIO(blocking I/O) : 同步阻塞, 服务器实现模式为一个连接一个线程, 即客户端有连接请求时服务器端就需要启动一个线程进行处理, 如果这个连接不做任何
阅读全文
第二章—Java BIO 编程:(1)I/O 模型
摘要:一、I/O 模型 I/O 模型简单的理解: 就是用什么样的通道进行数据的发送和接收, 很大程度上决定了程序通信的性能。 Java共支持3种网络编程模型/IO模式: BIO、 NIO、 AIO 1、Java BIO:同步并阻塞(传统阻塞型) 同步并阻塞(传统阻塞型), 服务器实现模式为一个连接一个线程
阅读全文
第一章—Netty 介绍与应用:(1)Netty 介绍与应用场景
摘要:一、Netty 的介绍 Netty 是由 JBOSS 提供的一个 Java 开源框架, 现为 Github上的独立项目。 Netty 是一个异步的、 基于事件驱动的网络应用框架, 用以快速开发高性能、 高可靠性的网络 IO 程序。 Netty主要针对在TCP协议下, 面向Clients端的高并发应用
阅读全文
Netty【目录】
摘要:一、Netty 介绍与应用 1、Netty 介绍与应用场景 二、Java BIO 编程 1、I/O 模型 2、Java BIO 编程 三、Java NIO 编程 1、Java NIO 基础介绍 2、Java NIO 三大核心原理示意图 3、Buffer 缓冲区 4、Channel 通道 5、Sele
阅读全文
第十三章:(1)CompletableFuture异步回调
摘要:一、CompletableFuture 简介 CompletableFuture 在 Java 里面被用于异步编程,异步通常意味着非阻塞,可以使得我们的任务单独运行在与主线程分离的其他线程中,并且通过回调可以在主线程中得到异步任务的执行状态,是否完成,和是否异常等信息。 CompletableFut
阅读全文
第十二章:(1)Fork/Join 分支合并框架
摘要:一、Fork/Join 框架简介 1、简介 Fork/Join 它可以将一个大的任务拆分成多个子任务进行并行处理,最后将子任务结果合并成最后的计算结果,并进行输出。 Fork/Join 框架要完成两件事情: Fork:把一个复杂任务进行分拆,大事化小 Join:把分拆任务的结果进行合并 任务分割:首
阅读全文
第十一章:(1)ThreadPool 线程池
摘要:一、线程池概述 1、简介 线程池(英语: thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度
阅读全文
第十章:(1)阻塞队列
摘要:一、栈与队列 常见的两种数据结构: 栈:先进后出(后进先出) 队列:先进先出 二、阻塞队列 1、BlockingQueue 简介 Concurrent 包中, BlockingQueue 很好的解决了多线程中,如何高效安全“传输” 数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的
阅读全文