Java中的编码
编码问题一直在困扰着程序开发人员,尤其在Java中更加明显。因为Java是跨平台语言,在不同平台的编码之间的切换较多。
为什么要编码?
所谓编码,就是要把人类能理解的语言翻译成计算机能理解的语言。
如何编码?
ASCII编码
ISO-8859-1
GB2312
GBK
GB18030
UTF-16
UTF-8
Java中需要编码的场景
一般有两种情况:在I/O操作中存在的编码,在内存操作中存在的编码。
I/O操作中存在的编码
内存操作中存在的编码
对几种编码格式的比较
在Java Web中涉及的编解码
先说明两个问题,一:文本实际大小要看字节数而不是字符数。二:Java内存编码采用的是UTF-16,所以一个char是16bit的,所以两个汉字用char表示,在内存中会会占用4个字节。
下面我们看一看一次HTTP请求的编码示例:
当然,细节问题,比如说URL的编码,HTTP Header的编码,POST表单的编码,HTTP BODY的编码,JS中的编码问题以及一些常见问题的分析,我就不细说了,请大家自己去看许老师的书吧。
编译
Javac是什么
Javac组件及编译流程
编译细节我就不赘述了。书中还讲解了class文件的相关知识。
类加载器
ClassLoader类结构分析
ClassLoader是个抽象类,我们想自己实现ClassLoader,一般会选择继承URLClassLoader。
ClassLoader的等级加载机制
如何加载class文件
ClassLoader其它相关知识
ClassLoader做的事:
如何实现热部署:
Java应不应该动态加载类