2-2、基本数据类型

语雀原文链接

1、数据类型分类

  • Java 语言是一种强类型语言。通俗点说就是,在 Java 中存储的数据都是有类型的,而且必须在编译时就确定其类型
  • 数据类型分为两种:基本数据类型和引用数据类型
  • 在 Java 的领域里,基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址。说白了,基本数据类型变量里存储的是直接放在抽屉里的东西,而引用数据类型变量里存储的是这个抽屉的钥匙,钥匙和抽屉一一对应

image.png

2、基本数据类型

  • 字节:Byte,计算机文件大小的基本计算单位;
  • 位:Bit,二进制的一位0或1
  • 1KB = 1024 Byte = 1024 * 8 Bit

2-1、布尔型boolean

  • boolean:布尔型,只能取 true false
  • JVM规范中,boolean变量作为int处理,也就是4字节;boolean数组当做byte数组处理,占用1Byte
				boolean aa = true;
        boolean bb = false;
        System.out.println(aa);
        System.out.println(bb);

2-2、字符型char

  • char:字符型
  • 字节大小:2 Byte
  • 2Byte:范围0~2^16-1 (65535)无负数
  • ASCII:American Standard Code Information Interchange美国标准信息交换码128个

image.png

  • Unicode:万国码,包含了世界上其它国家的语言字符,java采用的就是unicode码
        // A
        char a = 65;
        // A
        char b = 'A';

2-3、整型 byte short int long

  • byte:字节型(1Byte),范围-128(1000 0000)~127(0111 1111)
  • short:短整形(2Byte), -215~215-1
  • int:整形(4Byte),-231~231-1
  • long:长整形(8Byte),-263~263-1
				byte dd = 125;
        System.out.println(dd);

        short ee = 178;
        System.out.println(ee);

        int ff = 1122;
        System.out.println(ff);

        long gg = 11L;
        System.out.println(gg);

2-4、浮点型float double

  • float:单精度小数(4Byte)
  • double:双精度小数(8Byte)
        float f1 = 1.0; //java: 不兼容的类型: 从double转换到float可能会有损失
        float f2 = 1.0f;
        float f3 = 1.0F;

        double d1 = 1.0;
        double d2 = 1.0d;
        double d3 = 1.0D;

3、基本类型转换

  • 整数默认int,小数默认double
  • 容量排序byte < short < int < float < long < double;boolean不能转换
  • 自动类型转换:容量小的类型自动转换成容量大的类型
  • 强制类型转换:容量大的类型转换成容量小的类型,需加强制转换符,会造成精度降低或数据溢出
        /**
         * 自动类型转换:容量小的类型自动转换成容量大的类型
         */
        long ff = 100;
        
        /**
         * 强制类型转换:容量大的类型转换成容量小的类型
         */
        float aa = 1.2;//报错
        float bb = 1.2f;
        float cc = (float) 1.2;
byte特例
  • byte相关强转
  • 整型变量若在byte类型的保存范围内,可以直接赋给byte变量,不用强转;
  • 整型变量若不在byte类型的保存范围内,必须强转;
        // byte 取值范围 -128~127

        // int 赋值给byte,应该强转,但是在byte范围内则不需要强转
        byte a = 127;
        
        // 不在范围内需要强转.最终的值是-128
        // int 128 的二进制 00000000 00000000 00000000 10000000
        // 强转byte 1000 0000,反码就是 0111 1111 原码1000 0000就是-128
        byte b = (byte) 128;
        System.out.println(b);
char特例
  • char 类型与int类型互相转换
        int aa = 65;
        int bb = 'A';

        char cc = 'A';
        char dd = 65;

猜你喜欢

转载自blog.csdn.net/sinat_35615296/article/details/134908248