4.15 今天课太多了(主要有些水课要签到),只抽出来不到两个小时学习,今天主要学了java的类型转换,有自动类型转换和强制类型转换两种,将取值范围小的数据类型赋值给取值范围大的数据类型会发生自动类型转换,将取值范围大的赋值给取值范围小的需要强制类型转换否则会报错,强制类型转换会发生精度损失或者数据溢出,尽量不使用,最后还了解了一些位运算符,与或非还有异或,这些以前都了解过原理,
public class Demo09DataType{
public static void main(String[] args){
/*
* 等号右边是整数,整数默认类型为int
* 等号左边是long型的变量
* 将取值范围小的数据类型赋值给取值范围大的数据类型,发生了自动类型转换
*/
long num1 = 100;
System.out.println(num1);
int i = 10;
double b = 2.5;
/*
* double = int + double
* double = double + double
* int 自动提升为了double,发生了强制类型转换
*/
double sum = i + b;
System.out.println(sum);
//强制类型转换
/*
* 等号右边的数据是小数,小数的默认类型为double
* 等号左边的变量是float
* 将取值范围大的赋值给取值范围小的会报错,需要强转
*/
//float num2 = 2.5;
float num2 = (float)2.5;
//或者
float num3 = 2.5F;
System.out.println(num3);
//精度损失
int j = (int)2.1;
System.out.println(j);//结果为2,小数点没了
/*
* 数据溢出
*/
int k = (int)100000000000L;
System.out.println(k);//输出1215752192,数据溢出了
//位运算符
/*
* &(与)
* |(或)
* ~(非)
* ^(异或)
*/
}
}