首页 > 代码库 > 第四节(基本类型的转换)

第四节(基本类型的转换)

/*    关于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;                }}

 

第四节(基本类型的转换)