跳至主要內容
Java 和 JSON 序列化

Java 和 JSON 序列化

JSON(JavaScript Object Notation)是一种基于文本的数据交换格式。几乎所有的编程语言都有很好的库或第三方工具来提供基于 JSON 的 API 支持,因此你可以非常方便地使用任何自己喜欢的编程语言来处理 JSON 数据。

本文主要从 Java 语言的角度来讲解 JSON 的应用。

JSON 简介

JSON 是什么

JSON 起源于 1999 年的 JS 语言规范 ECMA262 的一个子集(即 15.12 章节描述了格式与解析),后来 2003 年作为一个数据格式ECMA404(很囧的序号有不有?)发布。
2006 年,作为 rfc4627 发布,这时规范增加到 18 页,去掉没用的部分,十页不到。


钝悟...大约 8 分钟Java工具IOJavaIO序列化JSON
Java 二进制序列化

Java 二进制序列化

简介

为什么需要二进制序列化库

原因很简单,就是 Java 默认的序列化机制(ObjectInputStreamObjectOutputStream)具有很多缺点。

不了解 Java 默认的序列化机制,可以参考:Java 序列化


钝悟...大约 8 分钟Java工具IOJavaIO序列化二进制
Java 序列化工具

Java 序列化工具

Java 官方的序列化存在许多问题,因此,很多人更愿意使用优秀的第三方序列化工具来替代 Java 自身的序列化机制。 如果想详细了解 Java 自身序列化方式,可以参考:Java 序列化

序列化库技术选型:

  • thriftprotobuf - 适用于对性能敏感,对开发体验要求不高的内部系统。
  • hessian - 适用于对开发体验敏感,性能有要求的内外部系统。
  • jacksongsonfastjson - 适用于对序列化后的数据要求有良好的可读性(转为 json 、xml 形式)。

钝悟...小于 1 分钟Java工具IOJavaIO序列化
Netty 快速入门

Netty 快速入门

Netty 简介

Netty 是一款基于 NIO(Nonblocking I/O,非阻塞 IO)开发的网络通信框架

Netty 的特性

  • 高并发:Netty 是一款基于 NIO(Nonblocking IO,非阻塞 IO)开发的网络通信框架,对比于 BIO(Blocking I/O,阻塞 IO),他的并发性能得到了很大提高。
  • 传输快:Netty 的传输依赖于内存零拷贝特性,尽量减少不必要的内存拷贝,实现了更高效率的传输。
  • 封装好:Netty 封装了 NIO 操作的很多细节,提供了易于使用调用接口。

钝悟...大约 4 分钟Java框架IOJavaIONetty
Java IO 模型

Java IO 模型

所谓的I/O,就是计算机内存与外部设备之间拷贝数据的过程。由于 CPU 访问内存的速度远远高于外部设备,因此 CPU 是先把外部设备的数据读到内存里,然后再进行处理。

关键词:InputStreamOutputStreamReaderWriter

UNIX I/O 模型

UNIX 系统下的 I/O 模型有 5 种:


钝悟...大约 16 分钟JavaJavaSEIOJavaJavaSEIO
Java IO 工具类

Java IO 工具类

关键词:FileRandomAccessFileSystemScanner

本文介绍 Java IO 的一些常见工具类的用法和特性。

File

File 类是 java.io 包中唯一对文件本身进行操作的类。它可以对文件、目录进行增删查操作。


钝悟...大约 7 分钟JavaJavaSEIOJavaJavaSEIO工具类
Java IO

Java IO

📖 内容

Java IO 模型

关键词:InputStreamOutputStreamReaderWriter

img
img

钝悟...小于 1 分钟JavaJavaSEIOJavaJavaSEIO
Java NIO

Java NIO

关键词:ChannelBufferSelector非阻塞多路复用

NIO 简介

NIO 是一种同步非阻塞的 I/O 模型,在 Java 1.4 中引入了 NIO 框架,对应 java.nio 包,提供了 ChannelSelectorBuffer 等抽象。


钝悟...大约 12 分钟JavaJavaSEIOJavaJavaSEIONIO
Java 网络编程

Java 网络编程

关键词:SocketServerSocketDatagramPacketDatagramSocket

网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。

java.net 包中提供了低层次的网络通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。

java.net 包中提供了两种常见的网络协议的支持:

  • TCP - TCP 是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP/ IP。
  • UDP - UDP 是用户数据报协议的缩写,一个无连接的协议。提供了应用程序之间要发送的数据的数据包。

钝悟...大约 6 分钟JavaJavaSEIOJavaJavaSEIO网络
2