摘要:
编码的原因可以总结为: 编码格式一览 各种语言需要交流,经过翻译是必要的,那又如何来翻译呢?计算中提拱了多种翻译方式,常见的有 ASCII、ISO-8859-1、GB2312、GBK、UTF-8、UTF-16 等。它们都可以被看作为字典,它们规定了转化的规则,按照这个规则就可以让计算机正确的表示我们 阅读全文
摘要:
TCP连接的状态 TCP连接过程是状态的转换,促使状态发生转换的因素包括用户调用、特定数据包以及超时等,具体状态如下所示: CLOSED:初始状态,表示没有任何连接。 LISTEN:Server端的某个Socket正在监听来自远方的TCP端口的连接请求。 SYN_SENT:发送连接请求后等待确认信息 阅读全文
摘要:
java的i/o操作类在包java.io下,大概可以分成如下四组: 前两组主要是根据传输数据的数据格式,后两组主要是根据传输数据的方式。 虽然 Socket 类并不在 java.io 包下,但是为什么仍然把它们划分在一起,I/O 的核心问题要么是数据格式影响 I/O 操作,要么是传输方式影响 I/O 阅读全文
摘要:
四层协议概述 TCP/IP通常被认为是一个四层协议系统:应用层、传输层、网络层、数据链路层,每层都有相应的协议。TCP/IP协议族是一组不同的协议组合在一起构成的协议族。尽管通常称该协议族为TCP/IP,但TCP和IP只是其中的两种协议而已,每一层负责不同的功能: 分层的概念说起来非常简单,但在实际 阅读全文
摘要:
什么是序列化和反序列化 Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。 什么情况下需要序列化 当你想把的内存中的对象保存到一个文件中或者数据库中时候(数据持久化); 利用序列化实现远程通信,即在网 阅读全文
摘要:
概述 发起一个http请求的过程就是建立一个socket通信的过程。 我们可以模仿浏览器发起http请求,譬如用httpclient工具包,curl命令等方式。 curl "http://www.baidu.com" 返回页面数据 curl -I "http://www.baidu.com" -I查 阅读全文
摘要:
理论阶段 函数接口 函数接口是行为的抽象; 函数接口是数据转换器; java.util.Function包。定义了四个最基础的函数接口: Supplier<T>: 数据提供器,可以提供 T 类型对象;无参的构造器,提供了 get 方法; Function<T,R>: 数据转换器,接收一个 T 类型的 阅读全文
摘要:
由于HeapByteBuffer和DirectByteBuffer类都是default类型的,所以你无法字节访问到,你只能通过ByteBuffer间接访问到它,因为JVM不想让你访问到它。 分配HeapByteBuffer的方法是: ByteBuffer.allocate(int capacity) 阅读全文
摘要:
锁优化分为代码层面的优化和jvm层面的优化 1. 代码层面的锁优化的思路和方法 一旦用到锁,就说明这是阻塞式的,所以在并发度上一般来说都会比无锁的情况低一点。 这里提到的锁优化,是指在阻塞式的情况下,如何让性能不要变得太差。但是再怎么优化,一般来说性能都会比无锁的情况差一点。 ReentrantLo 阅读全文
摘要:
1. 什么是NIO NIO是New I/O的简称,与旧式的基于流的I/O方法相对,从名字看,它表示新的一套Java I/O标 准。它是在Java 1.4中被纳入到JDK中的,并具有以下特性: NIO是基于块(Block)的,它以块为基本单位处理数据 (硬盘上存储的单位也是按Block来存储,这样性能 阅读全文