GBK和UTF-8的区别
- GBK编码
GBK编码是指中国的中文字符,它包含了简体中文与繁体中文字符,另外还有一种字符GB2312,这种字符仅能存储简体中文字符。
- UTF-8编码
UTF-8编码是一种全国家通过的一种编码,如果你的网站涉及到多个国家的语言,那么建议你选择UTF-8编码。
- GBK和UTF8的区别
UTF8编码格式很强大,支持所有国家的语言,正是因为它的强大,才会导致它占用的空间大小要比GBK大,对于网站打开速度而言,也是有一定影响的。
GBK编码格式,它的功能少,仅限于中文字符,当然它所占用的空间大小会随着它的功能而减少,打开网页的速度比较快。
BIO, NIO, AIO概念
-
BIO: Blocking IO,阻塞式IO
-
NIO: Non-blocking IO,非阻塞式IO
-
AIO: Async IO,异步IO(async [ə’zɪŋk])
Netty介绍
Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发。
“快速”和“简单”并不用产生维护性或性能上的问题。Netty 是一个吸收了多种协议的实现经验,这些协议包括FTP,SMTP,HTTP,各种二进制,文本协议,并经过相当精心设计的项目,最终,Netty 成功的找到了一种方式,在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。
序列化和反序列化
- 序列化: 将数据结构或对象转换成二进制串的过程
- 反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程
- Java序列化是指把Java对象保存为二进制字节码的过程(将Java对象存储到文件中、数据库中)
- Java反序列化是指把二进制字节码重新转换成Java对象的过程(从文件中、数据库中读取Java对象)
- Java要实现序列化的类必须实现java.io.Serializable接口
分布式相关
- 分布式服务框架:Dubbo、Web Service、Hessian、Spring Boot
- 分布式:一个业务分拆多个子业务,部署在多个的服务器上
- 集群:同一个业务,部署在多个服务器上
- 信用卡位数:16位,信用卡APP中用到
Java异常名词解释
- 检查性异常: 不处理编译不能通过
- 非检查性异常:不处理编译可以通过,如果有抛出直接抛到控制台
- 运行时异常: 就是非检查性异常
- 非运行时异常: 就是检查性异常
异常是超出程序正常正确执行流程的一些特殊情况。异常可以说是程序中的一些错误,但并不是所有的错误都是异常。例如用户登录,正常正确的流程是用户输入正确的用户名和密码进入系统,但是输入的密码不正确,不能登录系统,这就是一种异常,而不是错误。