变量
1. 名词解释
- 变量:变量是程序的基本组成单位,是用来存储数据的。变量有三个基本要素(类型+名称+值)
2. 变量的数据类型及其范围
2.1 变量的数据类型
2.2 变量的范围
2.2.1 整型
2.2.2 浮点型
//浮点型的使用细节
double num1 = 2.7;
double num2 = 8.1 / 3;
//如果要比较的话,这应该这样写,因为8.1/3得到的值是一个无限接近于2.7的数(近似值),但是不等于2.7
if(Math.abs(num1 - num2) < 0.00001){
System.out.println("相等");
}
2.2.3 布尔型
- 布尔类型也叫boolean类型,boolean类型数据只允许取值true和false,无null。
- boolean类型占一个字节。
- boolean类型适用于逻辑运算,一般用于程序流程控制:
if条件控制语句;
while循环控制语句;
do-while循环控制语句;
for循环控制语句;
2.2.4 char类型
在Java中 ,char的本质是一个整数,在默认输出时,是unicode码对应的字符。也就是说,char是占两个直接
3. 字符编码表
4. 基本数据类型的自动转换
当java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换。
- 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
- 当我们把精度大的数据类型赋值给精度小的数据类型的时候,就会报错,反之就会进行自动类型转换。
- (byte,short)和char之间不会相互自动转换。
- byte,short,char 他们三者可以计算,在计算时首先转换为int类型。
- boolean不参与转换。
- 自动提升原则:表达式结果的类型自动提升为操作数中最大的类型。
5. 强制类型转换
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符 ( ),但可能造成 精度降低或溢出,格外要注意。
细节说明:
- 强制符号只针对最近的操作数有效,往往会使用小括号提升优先级。
int y = (int)(18 * 3.5 + 6 * 1.5);
- char类型可以保存int的常量值,但不能保存int的变量值,需要强转。
char a = 97;//正确
char b = a; //正确
char c = a + b;//错误,char类型不能保存int的变量值
char d = 48 + 1;//正确,char类型可以保存int的常量值
char e = a + 1; //错误,char类型不能保存int的变量值
char e2 = (char)(a+1);//正确
char f = 'a' + 1;//正确,因为字符类型本质上还是一个整型
6. 基本数据类型和String类型的转换
int a = Integer.parseInt("123");
double b = Double.parseDouble("123.4");//这儿也可以写123,因为int类型可以自动转换为double类型
float c = Float.parseFloat("123.4f");
short d = Short.parseShort("12");
long e = Long.parseLong("12345");
boolean f = Boolean.parseBoolean("true");
byte g = Byte.parseByte("12");