计算机理解
摘要:CPU就像是一个马达,程序员像是就是个搬砖工人,按照一个格式把数据放好,马达启动按照摆的逻辑一个一个执行。 这个格式最终都转换为CPU的指令集,无论是OS、还是APP都需要在这个基础执行。 而各种语言只是写法上面有些差别,编译完成后都要变成CPU的指令或通过vm中间转换为CPU指令。 这个马达很快,
阅读全文
posted @
2019-06-26 15:00
rainbow.zhang
阅读(210)
推荐(0)
如何设计API 摘要 《C++API设计》
摘要:许多软件工程师更喜欢把API 缩写为 Abstract Programming Interfaces 而非Application Programming Interfaces. API 在c++中包含多个头文件及相关辅助文档 接口是开发者所写的最重要的代码,比起相关的实现代码出现问题,修复接口出现的
阅读全文
posted @
2019-06-26 14:57
rainbow.zhang
阅读(395)
推荐(0)
swagger源码解析
摘要:https://swagger.io/ yaml文件的解析依赖于snakeyaml的解析,解析完后封装为符合open api规范的对象。api的对象是树形结构,如果进行节点对比解析时按照树木的比较就可以,比较的时间复杂度就是O(n),comparer编辑器的代码变更对比也是通过这种方式对比的。 现实
阅读全文
posted @
2018-03-17 21:38
rainbow.zhang
阅读(798)
推荐(0)
JVM堆外内存随笔
摘要:JVM堆外内存 1)java与io(file,socket)的操作都需要堆外内存与jvm内存进行互相拷贝,因为操作系统是不懂jvm的内存结构的(jvm的内存结构是自管理的),所以堆外内存存放的是操作系统可以操作的内存地址模型,可以拷贝数据到内核的空间。 2)netty等网络通信组件为了减少jvm的内
阅读全文
posted @
2018-03-17 10:58
rainbow.zhang
阅读(310)
推荐(0)
ObjectInput read方法的坑
摘要:最近搞得一个bug,搞了好久既抓包分析数据,又debug竟然就是搞不懂为什么数据只是读了前面一部分。后来仔细研究了一下API,原来这个方法并不是你指的多少就读入多少指定的长度是最大长度,我嚓,太坑爹了。 这是API的comments java.io.StreamCorruptedException:
阅读全文
posted @
2016-08-04 10:45
rainbow.zhang
阅读(1524)
推荐(0)
java实现多模匹配算法
摘要:这个是好几年前写的了.都统一放到cnblogs上面.--------------------------------Node ----------------------------------package com;import java.util.ArrayList;import java.ut...
阅读全文
posted @
2015-03-16 16:17
rainbow.zhang
阅读(1560)
推荐(0)
netty启动过程
摘要:netty先启动work线程,work线程打开selector 绑定pipeline 启动boss线程,绑定端口,注册selector,绑定op_accetp事件 netty启动中,把所有的socke变化用事件变化来处理.包括serversocket,socket.在serversocket和soc
阅读全文
posted @
2014-12-22 14:14
rainbow.zhang
阅读(298)
推荐(0)
java 读写锁
摘要:http://tutorials.jenkov.com/java-concurrency/read-write-locks.html 翻译 读写锁比LOCK的实现更复杂,想象有一个应用程序能读和写一些资源,但是写没有读多,两个线程读取一些资源并不会出现问题,所以多个线程能读取资源重叠的。如果一个线...
阅读全文
posted @
2014-12-19 14:36
rainbow.zhang
阅读(596)
推荐(0)
selector的理解
摘要:对于nio这块最近几年一直就有关注,知道非阻塞,线程池,缓冲池,io的模式select,poll,epoll,甚至epoll中的et,lt.但是最近才有时间实际看了看netty的源码,才发现原来selector可以启用这么多,在我的印象中觉得一个服务其实一个selector就够用了,并且本...
阅读全文
posted @
2014-12-19 11:20
rainbow.zhang
阅读(419)
推荐(0)