
行无止境
文章平均质量分 90
系统的梳理爪哇课程上的知识点以及自己的知识体系,确保每一篇文章所涵盖的知识点自己可以干讲25分钟
码涤生
现在以一颗谦容的心想大家学习,将来以一颗无私的心想大家解答疑难杂症
展开
-
Java中的正则表达式是什么该怎么用?
正则表达式不止存在于Java中,在诸多的语言中都有而且语法相似几近相同,他主要用于编程中的文本处理。底层算法的主轴采用的是转态转移算法,当然也匹配有各种词法、语法解析。解析出来的各种规则构成了状态,根据一定的规则形成一个状态链也可以理解理解为是条件链,如果这些条件通过则说明通过正则表达式中指定的规则找到了我们目标字符串。//匹配一段文字中的所有英文单词 String context = "2005年6月,在Java One大会上,Sun公司发布了Java SE 6。原创 2022-08-25 12:57:25 · 329 阅读 · 0 评论 -
8、ByteBuf与ByteBuffer的区别
在Java的NIO中实现异步其中的一个关键就是利用ByteBuffer进行数据的缓冲,ByteBuffer进行缓冲的时候在读写数据之间需要进行切换。ByteBuf是Netty中又实现的一个与ByteBuffer功能相似的组件。这两个组件都应该是较为简单的,这里主要讲他们的实现机制以及如果要是面临大量数据读写的时候应该怎样使用。一、ByteBuffer原理ByteBuffer本质上是一个可以读写数据的内存块,可以理解成是一个容器对象(数组),他是通过几个关键的属性来协调读写流进行使用的:capaci原创 2022-05-04 23:19:38 · 1509 阅读 · 0 评论 -
7、深究NIO中的零拷贝
一、零拷贝概述零拷贝说起来似乎是一个很高大上的东西,但是理解了之后也就那么会事,挺简单的。了解NIO中的零拷贝之前需要知道计算机在运行的过程中是分为两种状态的——用户态、核心态。这两个概念是操作系统的范畴,他们之间的切换越少越好因为会带来上下文切换的开销。还有一个就是这里说的零拷贝并不是真正意义上的一次拷贝操作都没有而是指不会发生用户态到内核态的之间的拷贝。下图中传统模式的标记为红色的两种拷贝就是这样的拷贝所以说他是很浪费资源的。有关此流程图中的线上链接为:https://www.processon.co原创 2022-05-04 23:17:13 · 294 阅读 · 0 评论 -
6、我眼中的Netty—源码剖析
一、总体概述每一部分的源码剖析在第一步都应该关联Netty设计模型中对应的步骤,以求知识达到连贯!先对各个模块的源码有一个跟踪理解,最后需要通过自己的语言来描述一下Netty运行的一个完整流程,这一部分将成为一个主要的知识成果输出。1、源码流程概述1、最初的时候通过Group的相关方法穿件两个Gruop,这里面关键的就是他们的构造函数是一个多态的通过一层层的调用扩开发的灵活性、可用性EventLoop是如何保证单线程执行的如果要是BossGroup中包含多个EventLoop处理的机制是什原创 2022-05-04 23:14:45 · 219 阅读 · 0 评论 -
5、我眼中的Netty—编解码器
一、编解码器使用概述期初使用Netty的时候感觉Netty很复杂需要做很多东西,随着学习的深入到编解码器这一部分主键的感觉实际上Netty在网络编程的场景中确实是为我们简化了很多的操作。一个是各种网络通信类型之间的交换升级还有一个的话就是我们不再需要关注资源的释放以及在NIO场景下的资源详细监听。我们业务开发人员主要关注的是编写Handler即可。同样在Netty的编解码器模块中他的使用也可以看成是对特定类型Handler的使用,有关编解码器可以大概分为两种——编码器、解码器。这两种类型的他们顶层对应的就原创 2022-05-04 23:12:51 · 357 阅读 · 0 评论 -
4、我眼中的Netty—EventLoop与EventLoopGroup
在Java的NIO中有Selector、Channel、Buffer三大组件。其中Selector组件是用来监听挂载到他上面的Channel的事件,当Selector监听到相关感兴趣的时间之后回交给其他的Selector或是线程/线程池来处理。在Netty中EventLoop以及他的相关类为我们做的就是这个操作,可以简单的理解他整合了Selector以及要执行具体任务的线程池。这句话说得仅仅是一个笼统的概念,具体的实现我们通过先来的文章来娓娓道来。1、EventLoop初始化源码剖析EventLoo.原创 2022-05-04 23:09:11 · 522 阅读 · 0 评论 -
3、我眼中的Netty—ChannelHandler以及ChannelPipeline
这篇文章讲的是的ChannelHandler、Context、Pipeline、SockeChannel相关的核心组件关系以及以及使用技巧上的验证,有关的代码以及在实操的这一篇文章讲过了,这里聚焦于此部分技术概念的验证。1、ChannelHandler体系结构描述Channel相当于是搭起来客户端与服务端之间通信的一个管道,不过在客户端与服务端之间是存在编码解码以及业务相关的处理的,而这些处理我们程序猿是可以干预的,可以干预的这些过程都都是发生在与Channel板顶的Pipeline中。Pipeli.原创 2022-05-04 23:06:28 · 354 阅读 · 0 评论 -
2、我眼中的Netty—实操
在Netty学习过程中一些有代表性的示例以及应用场景实现思路!原创 2022-05-04 23:03:31 · 240 阅读 · 0 评论 -
1、我眼中的Netty—初识
“我眼中的Netty”这一系列的文章,着重通过自己的语言来描述自己对Netty核心概念的认识。这其中不对概念做一板一眼的定义与记录。其中在”初始“的章节中,主要介绍Netty的原由,以及Netty的设计模型。一、BIO网络编程1、同步&异步与阻塞&非阻塞的区别联系这两组概念个人理解为是一个是道的层面一个是术的层面,同步&异步为道,阻塞&非阻塞为术。道的层面可以理解一个调用在没有得到结果前不会返回这就是同步,如果是异步的话就是调用会立即返回继续向下执行,被调用这通过状.原创 2022-05-04 23:00:57 · 357 阅读 · 0 评论 -
Java集合——HashMap源码
Java集合知识图谱:https://www.processon.com/view/link/61bf27a17d9c087834f1d352问题:链表中的key放的到底是什么,Hash值吗,hash会有冲突吗,hash生成的原理是什么map中的阈值是如何确定下来的,意义是什么一、二三树2-3树是一种绝对平衡多叉树,在这棵树中他的任意一个节点的左右节点高度是相同的。2-节点表示节点中保存一个元素,3-节点则表示节点中保存两个元素。二、红黑树1、红黑树的五大概念每个节点要么是红色.原创 2021-12-19 20:43:23 · 992 阅读 · 0 评论 -
Java集合——HashSet、TreeSet源码
Set的实现是很简单的,但是这个简单的基础是建立在对于Map关键是HashMap的理解一、基础知识概述1、Set不能够方重复元素但是可以添加一个null(并不是所有的Set都可以例如TreeMap的就不行),这里应该是开启了HashMap的putVal方法中的后两个参数final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) {}2、Set接口对象存放的是无序的,但是取出的顺序是有序的(不是添加的.原创 2021-12-19 20:33:08 · 940 阅读 · 0 评论