java源码解析之charset(二)

    上一篇写了charset的一些外围,这一篇查看编码相关的一些实现: 、

     首先看的是七位的ascii编码: 

    java源码解析之charset(二)_第1张图片

    可以看到它的实现是就是语言机制所提供的强转,好桑心。  一直以为很神秘。 

java源码解析之charset(二)_第2张图片

    编码与解码都是这种款式: 强转! 需要注意的就是有时候我们读取文件的时候,出现一个带颜色的问号的来源就在于此。 因为它的逻辑就是这样。 

    接下来看基于八位的iso的字符编码集的实现:

java源码解析之charset(二)_第3张图片

    其逻辑的实现也能看出来,它只能处理一个字节的编解码,因此这就是我们为什么有时候我们在浏览器地址栏输入中文,在后端取不到我们想要的结果。 之所以说有时候,是因为有些浏览器会自动转换编码。 但是我就遇到过没转的。 

java源码解析之charset(二)_第4张图片

    记录这里的时候,我还不知道iso是针对八位的一个编码。   所以见笑了。 

java源码解析之charset(二)_第5张图片

    它们的实现依然是强转。    所以这些char啊,byte啊为啥要定义成基本数据类型呢!   并且很多的语言体系,几乎所有的高级语言体系吧,应该都有基本数据类型一说的。 不奇怪不奇怪。 

    接下来看一个二位的编码了:     UTF8

java源码解析之charset(二)_第6张图片

java源码解析之charset(二)_第7张图片

    可能是看的稍微久了那么一点有小情绪了嘿嘿。 但是依然可以知道这里编解码实现不再是简单的进行一个强转了。 

    接下来看的是UTF16,依然是一个两字节的编码:

java源码解析之charset(二)_第8张图片

java源码解析之charset(二)_第9张图片

    这里有一些逻辑错乱,因为当时对这个定位不清晰。 它的编解码都是针对uncode字符集,而非字节。 

java源码解析之charset(二)_第10张图片

java源码解析之charset(二)_第11张图片

    大小端的实现,以及对于与运算,或运算的一个理解。 

java源码解析之charset(二)_第12张图片

    依然是逻辑错乱导致的一点小疑惑。 

 以上是关于四个标准编码的一个查看。   它们有一个共性就是,它们在逻辑实现的时候都或多或少的与数字进行对比。 这时因为编码字符集就是与数字集的一个映射。  为什么会牵扯到数学呢?  因为它是一个天生的编码方案,它有自己的标志,有自己的位置,并且伴随着人类文明的发展而发展。   另一个方面,世界是联系的,数学体现的是事物之间最简单,最单一的联系。   适合为其它的事物提供基本的条件。 然后总览一下java中提供了的编码:

java源码解析之charset(二)_第13张图片

 

java源码解析之charset(二)_第14张图片

    最后由于自己的好奇心,非要去看看编码字符集的实现,终于找到一个ascii的和gbk:

java源码解析之charset(二)_第15张图片

java源码解析之charset(二)_第16张图片

java源码解析之charset(二)_第17张图片

java源码解析之charset(二)_第18张图片

    反正csdn也不差这点空间嘿嘿,接下来是gbk:

java源码解析之charset(二)_第19张图片

java源码解析之charset(二)_第20张图片

 

    ok,周末愉快!   下周将要进行查看的是:String系列的内容(知道很重要但是一直被耽搁,又不想花太多时间在上面,因为兴趣不大哈哈。因此粗看一下就跳过)以及jvm运行机制(因为网上已经有太多相关的介绍并且很全很详细,这里只是为了自己知识体系的完整性,也是粗看因为主要是查看资料,并且太多高深不是自己能够触碰)以及注解相关的内容。     -----(感觉任务有点重,在实际的工作中在进行适当的调整吧!) 

 

你可能感兴趣的:(java基础源码查看)