java基本类型字符集,java入门学习|Java的八种基础数据类型2

本文介绍了Java中的char类型,用于表示Unicode字符,以及ASCII、ISO-8859-1和Unicode字符集的历史发展。同时讲述了boolean类型及其在逻辑判断中的应用。字符转译和不推荐直接使用char类型的建议也包含其中。
摘要由CSDN通过智能技术生成

原标题:java入门学习|Java的八种基础数据类型2

b432b736fc39b6b2e39f77bd1622d665.png

昨天说了Java的八种基础数据类型中的6种,分别是整型的4种(byte,short,int,long),浮点型的2种(float,double)

今天说一下剩下的两种,char,boolean。

昨天讲过,在计算机内部是一个二进制的世界,也就是说计算机只能识别0和1,不论是指令还是数据,若想要存储在计算机中,都必须采用二进制的数的形式,即使想图片、声音这种信息,想要存储在计算机中也必须转成二进制数。

其实世上万物都可找到相应的规律,有规律就能量化,能量化就可以数字化,能数字化就可以二进制化,就可以被计算机识别,大家可以想想,是不是这么回事?

这里给大家发散一下思维,有点扯远了,再说回来,由于计算机只识别二进制的数也就是0和1,因此就要告诉计算机,那个数字代表的是哪些特定字符?比如数字65代表字母A,66代表字母B,以此类推……于是美国国家标准协会就制定了一个标准,这就是ASCII字符集,ASCII码使用一个字节的后7位来表示一个字符,总共表示2的7次方,也就是128个字符,剩下的最高位的那一个bit一般是0,比如字母A在计算机就以01000001这样的二进制数来表示存储的,也就是65。

其实ASCII字符集就是简单的一个查表过程,如下

f26d7b9885660239d462450687a60e05.png

我们可以看到字母A是65,字母B是66,小写字母a是97,小写字母b是98。

说完了ASCII字符集的原理,再讲一下字符集的发展历史,它是怎样从ASCII字符集进化到Unicode字符集的。

众所周知,计算机是美国发明的,而ASCII字符集就包括了英文字母,数字,特殊字符,控制符,但是随着计算机被世界普遍使用,ASCII字符集就不够用了,上次讲过一个字节有256个状态,而ASCII只占了128个,后边的128个是空着的,于是就有了ISO-8859-1西欧字符集,它包含了256个字符,前128个与ASCII字符集一致,后128字符包括了西欧语言、希腊语、泰语、阿拉伯语等这些拼音文字的符号,那随着我国计算机的发展,汉字的处理也有了我们自己的方案,也就是GB2312,用2个字节表示一个汉字,2个字节可以表示2的16次方,65536个状态,足以表示全部的汉字,台湾也自己搞了一份繁体字的字符集也就是BIG5字符集,这样全世界就都有了自己的文字编码,但是它们之间并不互通,经常会造成乱码的问题,这时Unicode字符集就出现了,它可以将世界上的全部语言字符集都包含进来,形成全部语言统一的字符集,也就解决了乱码的问题。为了加强理解,这里给出下图所示。

3a0c56eeb1f0459525e330733b40da35.png

Unicode采用字符集与编码分开的策略,Unicode之前我们可以把字符集与编码混为一谈,因为它们是一样的,而在Unicode中必须是分开的,Unicode字符集统一采用了2个字节表示一个字符,包括英文字母也是这样,但是因为英文占据了互联网信息的大部分,这样在真实的存储信息和传输信息的时候,就会造成极大的浪费,因此目前主要采用UTF-8编码来实现具体的存储与传输,UTF-8是一个变长的编码,用1~6个字节来编码表示Unicode字符集,西欧字符仍然是一个字节,汉字是三个字节,以上就是我们整个字符集的发展历史。

上面说了字符集的发展历史,铺垫了很多,接下来让我们来说一下基本数据类型中的字符型char。char用来表示Unicode字符集中的字符,Unicode被设计用来处理各种各样的语言,它占用2个字节,可以允许有65536个字符。

char类型原本用于表示单个字符,不过,现在情况已经有所变化。如今,有些Unicode字符可以用一个char值描述,另外一些Unicode字符则需两个char值。

用char类型来定义变量时,变量的值要用单引号引起来。比如,‘A’是编码值为65的字符常量。它与“A”不同,“A”是包含字符A的字符串。

下面来看一些char类型在Java中的用法

65e4dfe15900856e55116f0d31f078d5.png

在这里就要讲一下转译字符,看一下如下图片。

5c4b9c868663586704b873c61a504af7.png

我们来练习一下,大家看如下图

91fbc7caeddd34a93184e1d449bd8042.png

转译字符\n不打印时,c3与c5不换行,将\n一起输出时,就会看到c3与c5换行了。

93d1b44f41440d4352002cf9b81a01fb.png

在这里要强调一下,不建议在Java程序中使用char类型,除非需要进行特殊处理,建议使用String类来处理字符串。

最后讲一下布尔类型(boolean),boolean类型有两个值,true和false,用来判定逻辑条件。在内存中占用1个字节或4个字节。布尔值与其他数据类型的值不能进行相互转换。

9d10170bc3061086c133a2746a68c97c.png

可以看出,当flag为true时,逻辑判断为真,会输出Hello World!字符串,如果为false时,逻辑判断为假,就不会执行if里的内容,不会输出Hello World!字符串。

好了,到这里Java的八种基础类型就都说完了,回去大家还要多家练习,这里给大家留几个思考题。

1、如何将 “ABCDE”字符串转换成小写的“abcde”字符串?

2、说明一下:ASCII、ISO-8859-1、GBK、Unicode,GB2312、UTF-8的关系?返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值