- 博客(5)
- 资源 (16)
- 收藏
- 关注
原创 Netty-编/解码技术
《netty权威指南》学习笔记 基于java提供的对象输入/输出流ObjectInputStream和ObjectInputStream,可以将java对象作为可存储的字节数据写入文件,也可以在网络上传输。基于JDK默认的序列化机制可以避免操作底层的字节数组,从而提升开发效率。 java序列化仅仅是java编解码技术的一种,由于它的种种缺陷,衍生出了很多编解码技术和框架,本文后续会介...
2018-05-28 00:09:37 293
原创 Netty-TCP粘包/拆包解决之道
TCP粘包/拆包 定义 TCP是个“流”协议,所谓流,就是没有界限的一串数据。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分。所以,一个完成的包可能会被TCP拆分为多个包,也有可能把多个小包封装成一个大包,这就是所谓的TCP粘包河拆包问题。 解决策略 消息定长:例如每个报文大小固定为200字节,如果不够,空位补空格 在包尾增加回车换行符进行分割,...
2018-05-23 13:56:12 359
原创 实战java虚拟机01- 认识java虚拟机的基本结构
实战java虚拟机 学习笔记 认识java虚拟机的基本结构 一、 java虚拟机的基本结构 1. 类加载子系统:负责从文件系统或者网络中加载class信息。 2. 方法区:1加载的类信息放在方法区,方法区还会包括运行时常量信息,如:字符串字面量和数字常量 3. java堆:在虚拟机启动时建立,几乎所有的java对象都放在java堆中。堆空间是线程共享的。 4. 直...
2018-05-22 17:56:52 765
原创 java I/O历程(BIO,NIO,AIO)
《netty权威指南》学习笔记 传统的BIO编程(多线程版) 客户端:Socket 服务端:ServerSocket 采用BIO通信模型的服务端,通常创建一个 独立的Acceptor线程负责监听客户端连接,它接收到客户端请求之后为每一个客户端创建一个新的线程进行链路处理,通过输出流返回应答给客户端,线程销毁。这是典型的一请求一应答通信模型。 Server代码 Serv...
2018-05-16 19:53:48 264
原创 Mysql递归查询
最近新项目使用改用Mysql,遇到了一个递归查询的问题,查阅资料后,发现mysql并没有类似orcale的connect by递归查询的方法。 关于oracle的查询, 可以查看我的另一篇博文: https://blog.csdn.net/it_freshman/article/details/78526871 查阅资料,发现大致有两种解决思路: 使用function 使用p...
2018-05-04 17:30:17 806
http服务器文件自动上传
2018-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人