Java数据类型
Java基本数据类型:整型、浮点型、字符型、布尔型。
数据范围从小到大依次排序是:byte < (short / char) < int < long < float < double
代码实例
public class Data {
public static void main(String[] args) {
// 1.整型
byte b = 66; // -128 到 127
System.out.println(b);
short s = 1111; // -32768 到 32767
System.out.println(s);
int i = 999999; // -2147483648 到 2147483647 默认就是int
System.out.println(i);
long l = 123456789098L; // 123456789098超出了int范围需要添加L/l
System.out.println(l);
// 2.浮点型
double d = 66.6; // 小数默认是double
System.out.println(d);
float f = 66.6f; // float需要添加F/f
System.out.println(f);
// 3.字符型
char c1 = '牛';
System.out.println(c1);
char c2 = 'B';
System.out.println(c2);
// 4.布尔型
boolean b1 = true;
System.out.println(b1);
boolean b2 = false;
System.out.println(b2);
}
}
Java数据类型转换
一、自动类型转换
自动类型转换就是数据范围小的变量可以直接赋值给数据范围大的变量。
自动类型转换在计算机中的执行原理
自动类型转换其本质就是在较小数据类型数据前面补充若干个字节。
自动类型转换的其他形式
二、表达式的自动类型转换
所谓表达式指的是几个变量或者几个数据一起参与运算的式子。
在表达式中,小范围类型的变量会自动转换成表达式中较大范围的类型,再参与运算。
注意事项
1.多种数据类型参与运算,其结果以大的数据类型为准。
2.byte,short,char 三种类型数据在和其他类型数据运算时,都会转换为int类型再运算。
代码实例
public class datatype {
public static void main(String[] args) {
byte a = 66;
int b = 600;
long c = 6000;
// 在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算
long ret1 = a + b + c;
System.out.println(ret1);
double d = 0.6;
double ret2 = a + b + d;
System.out.println(ret2);
}
}
三、强制类型转换
强行将类型范围大的变量、数据赋值给类型范围小的变量。
目标数据类型 变量名 = (目标数据类型)被转换的数据;
例如:
int a = 20;
byte b = (byte)a;
代码实例
public class datatype {
public static void main(String[] args) {
int i = 66;
byte b = (byte) i;
System.out.println(i);
System.out.println(b);
int i2 = 666;
byte b2 = (byte) i2;
System.out.println(b2); //数据丢失
double d = 66.6;
int i3 = (int) d;
System.out.println(i3); //数据丢失
}
}
强制类型转换的原理
强制类型转换的原理,其实就是强行把前面几个字节砍掉,但是有数据丢失的风险。