JAVA数据类型

        //java在初始化变量的时候要赋值
        
        //整数类型
        byte 的范围是-128到+127之间,占用内存1个字节.
        byte b = 126;
        
        short 表示的范围是-2^15到2^(15-1)之间,占用两个字节.
        short s = 1;
        
        int 占用4个字节.
        int i = 1;
        
        long 占用8个字节.
        long l = 3l;//long类型变量赋值时,在值的后面跟l
        
        //浮点类型
        
        //单精度
        float 占用4个字节,精度是7位有效数字
        float f = 1.22f
        
        //双精度
        double 占用8个字节,精度是16位有效数字
        double d = 1.22
        
        //字符类型
        char 占用2个字节
        char c = 'a';
        
        //布尔类型
        boolean b1 = true;
        boolean b2 = false;
        
        //引用类型
        //引用类型可以在初始化的时候赋值为null
        String str = "hello";
        
        //引用类型与基本类型的区别
        int i0 = 1;
        int i1 = 1;
        //在内存中会存储2个1的值
        String s0 = "hello";
        String s1 = "hello";
        //不会在内存中存在两个"hello",s0和s1都引用了"hello"的地址
        
        //字符串的拼接
        String s3 = "he"+"ll"+"o";
        //类型转换
        
        //自动类型转换
        //容量小的类型会自动转换为容量大的数据类型
        byte a = 1;
        int m = a;
        System.out.println(m);//  1
        
        int a = 1;
        byte m = a; //报错
        
        byte short char 之间不会相互转换,他们三者之间计算时首先转换为int类型
//类型转换
        
        //自动类型转换
        //容量小的类型会自动转换为容量大的数据类型
        byte a = 1;
        int m = a;
        System.out.println(m);
        
        //多种类型的数据进行混合运算时,系统会将所有的数据转换成容量最大的那个类型
        int i = 1;
        short s = 2;
        byte b = 3;
        int result = i + s + b;//s和b会转换为int类型
        
        //为什么char也能参与计算
        char c = 'a';
        byte b0 = 2;
        int k = c + b0;
        System.out.println(k);//99  char使用到数学计算时用了ASCAII码值
        
        //字符串与任意的类型数据相加之后还会是字符串
        String str = "abc";
        int q = 1;
        System.out.println(str+q);//  “abc1”
        
        //强制类型转换
        int e = 1;
        byte o = (byte)e;//自动转换的逆过程,可以将大的数据类型转换为小的数据类型。
        //字符串不能直接转换为基本类型
        String str2 = "43";
        int j = Integer.parseInt(str2);
        System.out.println(str2);
        
        //booleanl类型不能强制转换
原文地址:https://www.cnblogs.com/lintianxiajun/p/12800541.html