
网络编程
文章平均质量分 64
codingtu
人活着是为了体验你从未体验过的美好。
coding的意义在于使用那些没有使用过的技术。
展开
-
Netty的基础架构模型
Netty是高性能的异步非阻塞NIO框架!下面先来理解一下两组关键的概念。同步和异步拿方法调用来说,同步是指调用一个方法能够在方法结束时立即得到方法的结果,异步就是方法调用时没有返回结果,由另外的线程去做方法中的事情,当前线程可以去做其他的事情。异步调用的结果会通过中间状态改变或者回调函数等来通知。拿一个生活的例子来说,同步就好比你去小区附近的一个4S点修车,老板在帮你修车,你一直在旁边等老板修好...原创 2017-08-14 00:24:21 · 6676 阅读 · 0 评论 -
如果 TCP 协议中三次握手不携带序列号,会造成什么样的后果
之所以需要三次握手,其实就是要双方相互确认彼此能够通信。一般要与对方确认可以通信,就要确认自己能够跟对方通信(1),且能够收到对方的通信(2),反过来对方也能够和自己通信(3),且能收到自己的通信(4)。基于这一点,流程就简化为3次握手通信。首先,client发送一个SYN=1,seq=X(X随机);到server,server收到这个消息,则确认了client能够与ser原创 2017-08-30 09:54:47 · 18542 阅读 · 2 评论 -
从Socket编程看HTTP服务器设计
从常用的telnet命令,了解Socket的设计和用途。我们会经常使用telnet来测试一个ip上某个端口是否能够连得通,这里中间其实就是利用socket连接返回数据。这里我们在linux服务器上输入telnet taobao.com 80命令后,得到了Connected to taobao.com的相应,说明了这样的一个连接是正常的,服务器返回了响应。上面的一个大体的过程就是类似我们java中的...原创 2017-12-29 19:32:43 · 433 阅读 · 0 评论 -
缓存篇(一)- Guava
接下来几篇给大家分享一下缓存相关的内容,包括但不限于Guava,JetCache和Spring Cache等。 Guava产生的背景 最常见最简单的方式就是我们使用HashMap或者ConcurrentHashMap,在内存中缓存数据,通过key存放value,通过key读取我们需要的value数据。但是这里存在一个问题,value是会过期的。所以我们还得需要设置一个定...原创 2018-08-04 17:41:52 · 3370 阅读 · 0 评论 -
缓存篇(三)- Spring Cache框架
前两篇我们讲了Guava和JetCache,他们都是缓存的具体实现,今天给大家分析一下Spring框架本身对这些缓存具体实现的支持和融合,使用Spring Cache将大大的减少我们的Spring项目中缓存使用的复杂度,提高代码可读性。本文将从以下几个方面来认识Spring Cache框架背景SpringCache产生的背景其实与Spring产生的背景有点类似。由于Java EE 系统框架...原创 2018-10-15 08:11:03 · 10757 阅读 · 0 评论 -
缓存篇(四)- Memcache(未完成)
缓存篇(四)- Memcache原创 2018-10-28 23:52:44 · 335 阅读 · 0 评论 -
排序算法总结(含动图演示和Java代码实现)
本文将围绕冒泡排序、桶排序、计数排序、堆排序、插入排序、并归排序、快速排序和选择排序,按照描述、时间复杂度(最坏情况)、动态图展示和代码实现来讲解。本文默认排序为从小到大。本文相关代码已上传至github,欢迎关注https://github.com/zhuzhenke/common-algorithms公用方法SortUtilspublic class SortUtils { ...原创 2018-12-03 08:10:15 · 4342 阅读 · 2 评论