Java字符类型,编码知识,数据转换学习
前言
字符类型,编码知识,数据转换学习ovo
一、字符类型(char)
(1)字符类型基本介绍
字符数据类型可以表示单个字符,字符类型数据在内存中2占个字节,字符数据类型也可以存放汉字,但是不能存放字符串。
(2)字符类型演示
char c1 = 'a'; // 可以存放单个字符
char c2 = '\n'; // 存放转义字符
char c3 = 97; // 存放Unicode码值
char c4 = '周'; // 存放汉字
(3)字符类型使用细节
1)字符常量都是用单引号' ' 括起来的字符。
2)Java中还允许使用转义字符'\' 将其后的字符变为特殊的字符型常量。
3)可以直接赋给char类型一个整数,比如 char c = 100;
然后在输出时,会按照整数对应的Unicode字符进行输出。
4)char类型都是可以进行直接运算的,其值相当于一个整数,因为都有相对应的Unicode。
二、编码了解
(1)Unicode编码(了解)
1)优点:Unicode编码将世界上所有的符号都纳入了其中,每一个符号都具有独一无二的编码,所以使用Unicode编码不会产生乱码的问题。
2)缺点:Unicode编码中一个英文字符和一个汉字都占2个字节,对于内存来说汇恒浪费。
3)编码0 - 127的字符都与ASCLL编码一样,所以说Unicode码兼容ASCLL码。
(2)ASCLL编码(了解)
1)优点:ASCLL编码一共规定了128个字符的编码,只占用了一个字节的后7位,最前面的一位统一为0,并且对英语字符和二进制位之间的关系做了统一规定。
2)缺点:不能表示所有的字符
(3)UTF-8编码(了解)
1)UTF-8编码可以使用1-6个字节表示一个符号,根据不同的符号来改变字节的长度
2)使用大小可变的编码,字母占1个字节,汉字占3个字节
三、基本数据类型转换
(1)自动类型转换
当Java程序在赋值或者运算时,精度小的数据类型会自动转换为精度大的数据类型,称为自动类型转换。
自动类型转换排序:
1)char => int => long => float => double
2)byte => short => int => long => float => double
(2)自动类型转换细节
1)当运算中有多种数据类型是,系统会自动将所有的数据转换为容量最大的那种数据类型在运算。
2)不能将精度大的数据类型赋给精度小的数据类型,会报错。
3)将精度小的数据类型赋给精度大的数据类型时会进行自动类型转换。
4)byte,short和char类型之间不会进行自动类型转换。
5)byte,short,char三者在计算时,会首先转换为int类型再运算。
6)表达式结果最终的类型为运算数中最大的数据类型。
案例:
int a = 'z'; // 正确 自动类型转换
double = 10; // 正确 自动类型转换
int a1 = 10.2; // 错误 精度大的数据类型无法赋给精度小的数据类型 double -> int
float f = 1.1; // 错误 1.1为double类型,不能赋给float,否则数据会丢失,应该为1.1F
(3)强制类型转换
1)强制类型转换就是将精度大的数据类型强制转换为精度小的数据类型。使用时需要在数据前加上强制转换符,但是会造成数据的精度降低或者数据溢出问题。
演示:
结果为:
(4)强制类型转换细节
1)当数据从精度大的类型转换为精度小的类型时就需要进行强制类型转换。
2)强制类型转换符号只会对于最近的数有效,有时会使用小括号来提升优先级。
3)byte,short,char类型在进行计算时,会自动当做int类型处理。
- 点赞
- 收藏
- 关注作者
评论(0)