文章目录
- 一、变量介绍
- 二、数据类型
- 1.整数类型
- 1.1 基本介绍
- 1.2 整型的使用细节
- 2.浮点类型
- 2.1 基本介绍
- 2.2 浮点类型使用细节
- 3. API文档
- 4.字符类型(char)
- 4.1 基本介绍
- 4.2 字符类型使用细节
- 4.3 字符类型本质探讨
- 1.ASCII码介绍
- 2.Unicode编码介绍
- 3.UTF-8编码介绍
- 5.布尔类型(boolean)
- 5.1 基本介绍
- 5.2 布尔类型使用细节
- 6.基本数据类型的转换
- 6.1 基本介绍
- 6.2 自动类型转换注意细节
- 6.3 强制类型转换
- 6.4 强制类型转换细节
- 6.5 基本数据类型和字符串类型的转换
- 6.6 基本数据类型和字符串类型的转换细节
- 7.章节练习
注:本文是对视频P35-P61内容的梳理
一、变量介绍
- 变量概念:
变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)。 - 变量是程序的基本组成单位
- 变量有三个基本要素(类型+名称+值)
- 变量使用的注意事项:
1.变量表示内存中的一个存储区域(不同的变量,类型不同,占用的空间大小就不同)
2.该区域有自己的名称(变量名)和类型(数据类型)
3.变量必须先声,后使用,即有顺序
4.该区域的数据可以在同一类型范围内不断变化
5.变量在同一个作用域内不能重名
6.变量 = 变量名 + 值 + 数据类型 - 程序中“+”号的使用
1.当左右两边都是数值型时,则做加法运算
2.当左右两边有一方为字符串,则做拼接运算
3.运算顺序是从左到右
二、数据类型
每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(字节)
上图说明,Java数据类型分为两大类,分别是基本数据类型和引用数据类型
ps:字符串不属于基本数据类型, 而是属于引用数据类型中的类
1.整数类型
1.1 基本介绍
整数类型即用于存放整数数值的。
1.2 整型的使用细节
byte n1 = 3 ;
short n2 = 3 ;
//内存中如下图所示
2.浮点类型
2.1 基本介绍
浮点类型可以表示一个小数。
几点说明:
- 浮点数在机器中存放形式:浮点数 = 符号位 + 指数位 + 尾数位
- 尾数部分可能丢失,造成精度损失(小数都是近似值)
2.2 浮点类型使用细节
- 与整数类型类似,浮点类型也有固定的范围和字段长度,不受具体OS的影响。
- 浮点型常量(具体值)默认为double型(8个字节),所以在声明float型常量的时候,需在后面加“f"或者“F”,以防止double型转float型时的精度丢失。但是相反,声明double型变量时带f是可以的。
float num1 = 1.1; //错误
float num2 = 1.1f; //正确
double num3 = 1.1; //正确
double num4 = 1.1f; //正确
- 浮点型常量两种表示形式
十进制数形式,如 5.12 512.0f .512 (可以省略0,但必须有小数点)
科学计数法形式,如 5.12e2【相当于5.12*10的2次方】 5.12E-2 - 通常情况下,使用double,因为精度更高(未知变量精度)
- 浮点数的使用陷阱:2.7和8.1/3 的比较,所以当对运算结果是小数的进行相等判断的时候要小心,应该是以两个数的差值的绝对值,在某个精度范围内判断。
double num1 = 2.7;
double num2 = 8.1 / 3;
System.out.println(num1); //输出2.7
System.out.println(num2); //计算得到输出的是一个接近2.7的小数,而不是2.7
if(Math.abs(num1 - num2) < 0.000001){
}
3. API文档
中文在线文档:https://www.matools.com/api
中文在线文档链接
4.字符类型(char)
4.1 基本介绍
字符类型可以表示单个字符,字符类型是char, 两个字节(可以存放汉字),多个字符用字符串String。
字符类型可以直接存放一个数字,在输出时输出的是这个数字所表示的字符(涉及到编码的概念)。
4.2 字符类型使用细节
在Java中,char的本质是一个整数,在默认输出时,是unicode码对应的字符,要输出对应的数字,可以(int)字符,如下
char c2 = 'a';
System.out.println((int)c2); //输出'a'对应的数字
char c3 = '韩';
System.out.println((int)c3); //输出结果是38889
char c4 = 38889;
System.out.println(c4); //输出结果是韩
4.3 字符类型本质探讨
1.ASCII码介绍
2.Unicode编码介绍
3.UTF-8编码介绍
可以理解为对Unicode码的一个改进
5.布尔类型(boolean)
5.1 基本介绍
- 布尔类型数据只允许取值true和false,无null
- 占1个字节
- 适用于逻辑运算,一般用于程序流程控制
5.2 布尔类型使用细节
不可以用0或非0的整数来替代false和true,这点和c语言不同。(无法将int类型转换为布尔类型)
6.基本数据类型的转换
6.1 基本介绍
6.2 自动类型转换注意细节
有多种类型进行混合运算时,系统首先自动将所有数据类型转换成容量最大的那种数据类型,然后再进行计算。
int n1 = 10; //ok
float d1 = n1 + 1.1; //错误,n1 + 1.1 => 类型结果是double,将double转换为float时可能会有精度损失
double d1 = n1 + 1.1; //正确
float d1 = n1 + 1.1f; //正确,n1 + 1.1 => 类型结果是float
byte,short,char 他们三者可以计算,在计算时首先转换为int类型
byte b4 = b2 + b3; //错误,运算过后类型为int
6.3 强制类型转换
自动类型转换的逆过程,将容量大(精度高的)数据类型转换为容量小的数据类型,使用时要加上强制转换符(), 但可能造成精度降低或者溢出,格外要注意。
6.4 强制类型转换细节
6.5 基本数据类型和字符串类型的转换
6.6 基本数据类型和字符串类型的转换细节
- 将字符串类型转换为基础数据类型的时候,要确保字符串类型能转成有效的数据,比如,将“123”转换成一个整数,但不能把“hello”转换成一个整数。
- 如果格式不正确,就会抛出异常,程序就会终止,这个问题在异常处理章节中会处理。
7.章节练习