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

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

}

 

posted @ 2015-01-15 15:32  哥的笑百度不到  阅读(143)  评论(0编辑  收藏  举报