变量
变量的声明语法:
数据类型 变量名 = 变量值;
一、数据类型
数据类型分为:基本基本数据类型和引用数据类型
1、基本数据类型:(八大基本数据类型)
1.byte:字节型 占8位。 默认值:0
2.char:字符型 占2字节 默认值:\u0000(null)但不是空格 就是啥都没有
3.short:短整型 占2字节 默认值:0
4.int:整型 占4字节 (常用) 默认值:0
5.long:长整型 占8字节 默认值:0l
6.float:单精度类型 占4字节 默认值:0.0f
7.double:双精度类型 占8字节(常用) 默认值:0.0
8.boolean:布尔类型 占1位。 默认值:flase
2、引用数据类型:
类、接口、String等
二、基本数据类型转换(boolean类型不参与)
1、自动类型转换(隐式定义)
数据范围小的 自动会转换 为数据范围大的
char、short、byte—>int—>long—>float—>double
char\short\byte不会自动转换 他们统一会自动转换为int
char a = 'A';
int b = a;//输出的值是65(这里涉及到ASCII码又称万国码)
2、强制类型转换(显式定义)
数据范围大的 强制转换 为数据范围小的 (可能会出现精度丢失的问题)
double num1 = 19.99;
int num2 = (int) num2;//返回值是19
3、自动类型提升
在不同类型的数据进行运算时,编译器会自动的将数据范围小的提升为运算中数据范围最大的数据类型进行运算
而byte、short、char类型则会自动提升为int在参与运算
int a1 = 1;
double a2 = 1.0;
char a3 = 'a';
byte a4 = 1;
long a5 = 1L;
float a6 = 1.0f;
//a1 + 到 a6 的结果要用double类型来接收 不然会编译报错
double a7 = a1 + a2 + a3 + a4 + a5 + a6;
//如果不用double类型接收 就只能进行强制类型转换
System.out.println('a' + 1);//返回值结果是:98
//四则运算(+ - * /)都是会自动提升类型在进行运算