Java中的编码

编码问题一直在困扰着程序开发人员,尤其在Java中更加明显。因为Java是跨平台语言,在不同平台的编码之间的切换较多。

为什么要编码?

《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
所谓编码,就是要把人类能理解的语言翻译成计算机能理解的语言

如何编码?

《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
ASCII编码
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
ISO-8859-1
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
GB2312
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
GBK
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
GB18030
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
UTF-16
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
UTF-8
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器

Java中需要编码的场景

一般有两种情况:在I/O操作中存在的编码在内存操作中存在的编码
I/O操作中存在的编码
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
内存操作中存在的编码
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
对几种编码格式的比较
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器

Java Web中涉及的编解码

先说明两个问题文本实际大小要看字节数而不是字符数。二:Java内存编码采用的是UTF-16,所以一个char是16bit的,所以两个汉字用char表示,在内存中会会占用4个字节
下面我们看一看一次HTTP请求的编码示例:
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
当然,细节问题,比如说URL的编码,HTTP Header的编码,POST表单的编码,HTTP BODY的编码,JS中的编码问题以及一些常见问题的分析,我就不细说了,请大家自己去看许老师的书吧。

编译

Javac是什么

《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器

Javac组件及编译流程

《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
编译细节我就不赘述了。书中还讲解了class文件的相关知识。

类加载器

《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器

ClassLoader类结构分析

《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
ClassLoader是个抽象类,我们想自己实现ClassLoader,一般会选择继承URLClassLoader

ClassLoader的等级加载机制

《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器

如何加载class文件

《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器

ClassLoader其它相关知识

ClassLoader做的事:
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
如何实现热部署:
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
Java应不应该动态加载类
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器
《深入分析JavaWeb技术内幕》读书笔记五.Java编码,编译及类加载器

相关文章:

  • 2021-08-04
  • 2022-01-13
  • 2021-10-11
  • 2021-06-10
  • 2021-06-01
  • 2021-08-11
  • 2021-10-26
  • 2021-11-12
猜你喜欢
  • 2021-06-04
  • 2021-05-27
  • 2021-07-30
  • 2021-03-31
  • 2021-04-08
  • 2021-08-16
  • 2021-08-17
相关资源
相似解决方案