第四节(基本类型的转换)
/* 关于Java语言中的整形数据: byte 1byte(8bit) -128 ~ 127 short 2byte int 4byte long 8byte 整数型有三种表示方式 1. 十进制 2. 八进制 以0开头 3. 十六进制 以0x开头 */ public class DataTypeTest01{ public static void main(String[] args){ // 十进制 int i = 10; // 常用类型 // 八进制 int j = 010; // 十六进制 int k = 0x10; System.out.println("i = "+i); System.out.println("j = "+j); System.out.println("k = "+k); // 将一个int类型 100字面值赋值给m变量 int m = 100; // 将int类型 150字面值赋值给 long类型的n // int类型的容量小于long类型 // 默认已经存在数据类转换,只不过是“自动类型转换” long n = 150; // 由于出现了“L” 就会把160看成long类型 // 以下程序不存在类型转换,只是一个普通的赋值运算 long x = 160L; // 可以将 int类型 转换成 long类型 “自动类型转换” long y = 234233633; // 如果int类型的值小于2^31 - 1 // 什么时候使用"L"或者“l”,建议使用“L” // 如果该数值大于 2^31-1就用L 并且是 long类型 long t = 8797979L; System.out.println("L = " + t); } }
/* byte 类型 */ public class DataTypeTest02{ public static void main(String[] args){ long i = 1000L; // 不能自动类型转换 // 需要强制类型转换,添加强制类型转换符() // 添加(int)后,编译通过了,但是程序在运行阶段可能损失精度,所以一定要谨慎使用 // 大容量long 像小容量转换,需要强制类型转换 int j = (int)i; // byte 取值范围(-128 ~ 127)只要不超出范围 byte k = 10; byte m = 127; // byte n = 128; 错误写法 超出范围 // short 取值范围(-32768 ~ 32767) short x = 23423; // char 取值范围(0 ~ 65535) // 总结:如果整数没有超出byte,short,char取值范围,可以直接将这个整数赋值给byte,short,char char y = 90; char u = 65535; int v = 58787; char w = (char)v; System.out.println("j = " + j + " u = " + u + "w = " + w); } }
/* 关于 浮点型 float 4个字节 double 8个字节 */ public class DataTypeTest03{ public static void main(String[] args){ double i = 1.2; // 强制类型转换 float y = (float)i; // 自动赋值运算符 float x = 1.2F; System.out.println("i = " + i + " y = " + y + " x = " + x); } }
/* java中的布尔类型 1. 只有两个值:true/false 没有0和1 2. 主要用在 逻辑运算符和条件控制语句中 */ public class DataTypeTest04{ public static void main(String[] args){ //boolean i = 1; boolean sex = true; if(sex){ System.out.println("男人"); } else { System.out.println("女人"); } System.out.println("sex = " + sex); } }
/* byte,short,char做混合运算的时候,需要先各自转换成int在做运算 */ public class DataTypeTest05{ public static void main(String[] args){ byte i = 10; short j = 20; int k = i + j ; byte m = (byte)(i + j); System.out.println("k = " + k + "m = " + m); /* java程序在运行的时候分两个时期 1. 编译期 2. 运行期 在编译阶段只是知道 i+j 是int类型 int 类型无法直接赋值给 byte类型 */ byte n = 100; } }