zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

《Java和Android开发学习指南(第2版)》—— 第2章 语言基础 2.1 ASCII和Unicode

AndroidJAVA基础语言开发 2.1 Unicode 学习指南
2023-09-11 14:17:34 时间
传统上,英语国家的计算机只使用美国信息交换标准代码(American Standard Code for Information Interchange,ASCII)字符来表示字母和数字字符。ASCII中的每个字符都用7位来表示。

本节书摘来异步社区《Java和Android开发学习指南(第2版)》一书中的第2章,第2.1节,作者:【加】Budi Kurniawan,更多章节内容可以访问云栖社区“异步社区”公众号查看。

第2章 语言基础

Java和Android开发学习指南(第2版)
Java是一种面向对象编程语言,因此,理解OOP非常重要。第4章是本书的第一个关于OOP内容的一章。然而,在了解OOP功能和技术之前,应该先学习Java语言的基础知识。

2.1 ASCII和Unicode

传统上,英语国家的计算机只使用美国信息交换标准代码(American Standard Code for Information Interchange,ASCII)字符来表示字母和数字字符。ASCII中的每个字符都用7位来表示。因此,这个字符集中有128个字符。其中包括小写和大写的拉丁字母、数字和标点符号。

ASCII字符集后来扩展了,包括了另外的128个字符,例如,德语字符ä、ö、ü和英国货币符号£。这个字符集叫作扩展了的ASCII,并且每个字符使用8位来表示。

ASCII和扩展的ASCII只是可用的众多字符集中的两个。另一个流行的字符集由国际标准化组织(International Standards Organization,ISO)标准化了,即ISO-8859-1,也称之为Latin-1。ISO-8859-1中的每一个字符也用8位来表示。这个字符集包含了很多西方语言(如德语、丹麦语、荷兰语、法语、意大利语、西班牙语、葡萄牙语,当然也包括英语)编写文本所需的所有字符。每个字符占8位的字符集便于使用,因为一个字节也是8位的长度。因此,用一个8位的字符集来存储和传输文本,也更有效率。

然而,并不是每种语言都使用Latin字母。中文和日文是使用不同的字符集的两个例子。例如,中文中的每个字符表示一个字,而不是一个字母。这样的字符有数千个,8位不足以表示字符集中的所有字符。日文也使用一种不同字符集。全部算起来,全世界的语言中,有数以百计的不同的字符集。为了统一所有字符集,创建了一个叫作Unicode的计算标准。

Unicode是由一个叫作Unicode联盟(Unicode Consortium,www.unicode.org)的非营利的组织开发的。这个实体试图将全世界所有语言的所有字符,都包含到一个单个的字符集中。Unicode中的一个唯一的编号,只表示1个字符。Unicode当前的版本8,用于Java、XML、ECMAScript和LDAP等。

一开始,一个Unicode字符用16位来表示,这足够表示65 000多个不同的字符。65 000字符足以表示世界上主要语言中的大多数字符了。然而,Unicode联盟计划支持100万个以上的字符编码。根据这个数量,可能还需要另外的16位才能表示每个字符。实际上,32位系统被认为是存储Unicode字符的一种方便的方式。

现在,你已经看到了一个问题。尽管Unicode为所有语言中的所有字符提供了足够的空间,但是,存储和传输Unicode文本并不像存储和传输ASCII或Latin-1字符那样高效。在互联网世界中,这是一个大问题。想象一下,你要传输的数据是ASCII文本的4倍那么多。

好在字符编码可以使得存储和传输Unicode文本更加高效。你可以把字符编码看作是和数据压缩类似。并且,如今有很多类型的字符编码可用。Unicode联盟支持如下3种:

UTF-8。这在HTML中很流行,并且用作将Unicode字符转换为不同长度的字节编码的协议。它利用了一个优点,即Unicode字符与人们熟悉的ASCII具有相同的字节值。转换为UTF-8的Unicode字符可以用于很多已有的软件。大多数浏览器都支持UTF-8字符编码。
UTF-16。在这一字节编码中,所有较为常用的字符都放入到单个的16位的编码单元中,其他较少用到的字符,通过一对16位的编码单元来访问。
UTF-32。这个字节编码为单个的字符使用32位。这显然不是Internet应用程序的选择,至少目前还不是。
ASCII字符仍然在软件编程中扮演主要的角色。Java对于几乎所有的输入元素都使用ASCII,除了注释、标识符以及字符和字符串内容之外。对于后者,Java支持Unicode字符。这意味着,你可以用英语以外的语言来编写注释、标识符和字符串。


《Java和Android开发学习指南(第2版)》—— 导读 本书是针对那些想要学习Java语言,特别是想要进行Android应用程序开发的人编写的。本书包含两个部分,第1部分主要介绍Java,第2部分介绍如何有效地构建Android应用程序。
《Java和Android开发学习指南(第2版)》—— 2.10 本章小结 本章介绍了Java语言的基础知识,包括继续学习高级内容之前应该掌握的基本概念和话题。讨论的话题包括字符集、变量、基本数据类型、字面值、操作符、操作符优先级以及注释。
《Java和Android开发学习指南(第2版)》—— 2.9 注释 在整个代码中编写注释,充分地说明一个类提供了什么函数,一个方法做些什么,一个字段包含什么等,这是一种好的做法。在Java中,有两种类型的注释,它们都和C和C++中的注释有类似的语法。
《Java和Android开发学习指南(第2版)》—— 2.8 操作符 计算机程序是实现某一功能的操作汇集在一起的一个集合。有很多种类型的操作,包括加法、减法、乘法、除法和位移。在本小节中,我们将学习各种Java操作。
《Java和Android开发学习指南(第2版)》—— 2.7 基本类型转换 在处理不同的数据类型的时候,我们常常需要进行转换。例如,将一个变量的值赋给另一个变量,就涉及转换。如果两个变量具有相同的类型,赋值总是会成功。从一种类型到相同类型的转换,叫作等同转换(identity conversion)。
《Java和Android开发学习指南(第2版)》—— 2.6 字面值 很多时候,我们需要给程序中的变量赋值,例如,将数字2赋给一个int型变量,或者将字符“c”赋给一个char型变量。为此,需要按照Java编译器能够理解的格式来书写值的表示形式。表示一个值的源代码叫作字面值。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。