1 目录及资源索引
2 布尔型变量
- boolean 类型适用于逻辑运算,一般用于程序流程控制;
- 在 Java 当中的 boolean 类型只有两种取值可能 true 和 false。
需要注意的是布尔类型只有 true 和 false,不能为其他值(0,非0,空,非空)。这点不同于C语言和C++。
3 字符型变量
- char 类型数据用来表示通常意义上的字符;
- 字符是由单引号包括起来的单个字符:
char c = 'a';
- Java 字符使用Unicode字符集;
4 什么是Unicode字符集
在看什么是 Unicode 字符集之前,先简单列一下 ASCII 字符集,用来做一个对比。
- ASCII 字符集
- ASCII 全称为:American Standard Code for Information Interchange(美国信息交换标准规范)。我也是第一次了解了 ASCII 的全称。。。
- 在计算机当中,所有数据都需要使用二进制的数字表示;
- 类似于a、b、c之类的字母无法直接用二进制表示;
- 所以就将所有常见的符号进行编号。标准 ASCII 码使用7位二进制数来表示字符;
- 7位二进制数可以表示所有的数字,大小写字母以及一些常见符号(例如!,@,#,$等)。
- Unicode 字符集
- Unicode 为每种语言的每个字符设定了统一并且唯一的二进制码。(此处的语言,我个人理解应该为:汉语,英语,法语等等这种语言。而不是 Java,C语言,C++等)
- Unicode 满足了跨语言文本转换和处理的需求;
- Unicode 在互联网当中扮演着非常重要的角色;(类比不同地区,不同种族,不同语言人们的文明交流,这就像是一个纽带一样,连接着这么多东西)
- Unicode 使用数字 0 - 0X10FFFF 来表示字符;
- 最多允许有 1114112 个字符。
5 乱码是怎么产生的
乱码产生的主要原因是:存入(写)内容所使用的字符集,和取出(读)内容所使用的字符集不一样,就会产生乱码。
参考例子可以自己在一个TXT文本中输入 联通 两个字,然后保存,关闭,再重新打开,就会发现已经出现乱码了。自己测试的时候,发现输入我名字就不会这样,很神奇。
6 Java与Unicode字符集
由于 Java 在设计的初期就考虑到将该语言使用在互联网当中,所以设计者们就选用了 Unicode 字符集,这也使得 Java 程序能够在互联网当中更好的流通,也正是由于这样的原因,以下的代码是合法的:
char c = '中';
Java 中的 char 类型的变量可以存储一个汉字。因为 Java 使用的是 Unicode 编码,在此编码中,一个英文字符和一个中文字符,占用的长度是一样的。
7 实际测试
代码如下:
public class test1
{
public static void main(String args[])
{
char cTemp1 = '赵';
System.out.println(cTemp1);
}
}
按照之前的方法,编译出现了如下错误:
经过在网上查找资料,发现在编译的时候,系统使用的字符集不是 Unicode 的字符集,网址及截图如下:
参考网址:错误:编码GBK的不可映射字符
后来又重新尝试使用如下命令编译,发现编译成功了。
javac test1.java -encoding UTF-8
接下来,运行编译好的类文件,即可发现,成功打印出汉字。
8 数值型变量
数值变量分为两大类
-
整数类型
a. byte
b. short
c. int
d. long -
浮点类型
a. float
b. double
整数类型占用存储空间及表数范围如下:
类 型 | 占用存储空间 | 表数范围 |
---|---|---|
byte | 1字节 | -128 ~ 127 |
short | 2字节 | -215 ~ 215 - 1 |
int | 4字节 | -231 ~ 231 - 1 |
long | 8字节 | -263 ~ 263 - 1 |
Java 语言整型常量的三种表示形式:
- 十进制整数,如12,-314,0。
- 八进制数,要求以0开头,如012。
- 十六进制数,要求0x或0X开头,如0X12。
Java 语言的整型常量默认为 int 型,如:
int iTemp1 = 3;
声明 long 型常量,可以在后边加上 “l” 或 “L” ,不过一般建议加上大写L,便于区分:
long lTemp1 = 3L; // 加上 L 代表长整型
9 浮点数
浮点数类型占用存储空间及表数范围如下:
类 型 | 占用存储空间 | 表数范围 |
---|---|---|
float | 4字节 | -3.403E38 ~ 3.403E38 |
double | 8字节 | -1.798E308 ~ 1.798E308 |
10 总结
- 明白了 Java 中布尔类型,只能取 true 或 false,不能为其他;
- 了解了 Unicode 字符集,并做了相关测试;
- 了解到 Java 中,一个汉字和一个英文字符,占用的长度是一样的,因为 Java 使用的就是 Unicode 字符集。
- 明白了乱码产生的原理;
- 需要给一个变量赋值为长整型时,需要在后边加上大写的L,否则默认就是 int 整形的。
- 了解不是很深入,还需继续努力呀~