欢迎光临散文网 会员登陆 & 注册

150天打卡day03_基本数据类型字符、布尔类型

2021-02-23 15:11 作者:关阿姨的Java日记  | 我要投稿

字符类型

Java中字符类型char用于存储“字符”数据。Java字符类型采用16位2进制数进程存储。字符类型的本质数一个符号数,其有效范围数0~65535,字符类型char事实上是一个16位无符号整数(都是正数),这个值是对应字符的编码,

要想理解字符类型,就必须理解Unicode编码。计算机从诞生以来就只能处理数字,如何 处理字符呢,办法就是将字符用数字表示。Unicode是一个国际化专家组织,其成立目的就是 将全世界的所有字符收集起来,为世上每个字符分配一个唯一整数。目前已经收集了10多万 文字符号,并且已经进行合理编码。具体编码请参考 http://www.unicode.org 网站。

Java的字符就采用了Unicode标准,每个字符的值就是其Unicode编码值,每个字符的 Unicode编码值都是唯一不变的。Java中无论英文字符还是中文字符或者其他国家字符,其内 存编码都是16位2进制数字,相当于两个字节。

UTF-8 GBK 等字符序列化编码,不再这次课程讨论范围之内。

码表下载链接:https://www.unicode.org/Public/13.0.0/charts/CodeCharts.pdf

例如:字符a实际的值为97,字符A实际的值为65。

字符直接量可以采用诸如:‘中’的形式,也可以采用16进制的表示形式,例如:‘\u4e2d’

字符类型赋值

  • 字符直接量:形如‘A’,其本质是一个字符整数编码

  • 整型直接量:范围在0~65535之间的整数,数值对应字符的Unicode编码

  • Unicode形式:形如’\u4e2d’,Unicode字符的16进制形式

  • 转义字符:不便输入的字符可以使用转义字符:

 对char型变量赋值

在对char型变量赋值时,可以采用如下三种方式:

1、字符直接量:形如‘A’,变量中实际存储的是该字符的Unicode编码(无符号整数值),一个char型变量只能存储一个字符。

2、整型接量:范围在0~65535之间的整数,变量中实际存储的即该整数值,但表示的是该整数值所对应的Unicode字符。示例如下

3、Unicode形式:形如‘\u0041’,Unicode字符的16进制形式。示例如下:

如上面代码所示的3种写法中,常常使用的是第一种方式。

特殊符号的unicode编码

使用转义字符

字符直接量需要包含在一对’’单引号之中,那如果想表示单引号’的字符时,需要怎么表示?想表示回车、换行符时,怎么表示?

因为单引号为特殊意义的字符,那么,对于不方便输出的字符可以采用转义字符来表示,示例代码如下:

特殊符号需要通过\来转义。

\b:退格

\n:换行

\t:制表符,相当于tab键

\r:回车

\:表示反斜杠

\':表示单引号

\":表示双引号

Tips:转义字符的意义就是避免出现二义性,二义性是所有编程语言都不允许的。

char运算

1、char类型是可以运算的因为char在ASCII等字符编码表中有对应的数值。

2、在JAVA中,对char类型字符运行时,直接当做ASCII表对应的整数来对待。

3、字符直接量必须放在单引号中,只能有一个.

示例:

布尔类型

使用boolean变量进行关系运算

boolean类型适用于关系、逻辑运算,表示某个条件是否成立,只允许取值true或false,true表示条件成立,而false表示条件不成立。

 boolean型变量经常用于存储关系运算的结果,所谓关系运算就是比较两个变量的大小相等等关系。

基本类型间转换

Java中将小范围数据转换为大范围数据的转换称为自动数据类型转换,由于是自动发生,不需要明显的语法说明,顾称为“隐式数据类型转换”。由于大类范围型涵盖了小范围类型的取值范围,所以小类型数据就一定能够转换到大范围的数字。就像小口袋中的物体一定能够装到大口袋中。

不同的基本类型直接可以相互转化,主要有两种方式:

1) 自动类型转化(隐式类型转换):从小类型到大类型可以自动完成。

2)  强制转化:从大类型到小类型需要强制转换符。

将变量从大范围向小范围转换时候,不能自动完成,需要利用强制转换运算符完成。由于大类型的范围超过小类型,大类型在小类型范围内的数据可以成功转换,但是超过小类型范围的数据转换时候就会发生溢出和精度损失。所以强制类型转换时候存在风险。请妥善预估范围在进行转换。

强制转换时的精度丧失和溢出

因为大类型的精度值大于小类型,取值范围大于小类型,所以,当使用强制转化时,有可能会造成精度的损失或者溢出,所以,在使用强制转化时要求显式的告诉编译器,正在进行强制转换。

byte、char、short转换为int

java中涉及 byte、short 和 char 类型的运算操作,首先会把这些值转换为 int 类型, 然后对int类型值进行运算,最后得到 int 类型的结果。

练习


150天打卡day03_基本数据类型字符、布尔类型的评论 (共 条)

分享到微博请遵守国家法律