Java基本数据类型

整数类型:byte、short、int、long

Java各整数类型有固定的表数范围和字段长度,不受具体操作系统的影响,以保证Java程序的可移植性。

 说明

  • 定义long类型的变量,赋值时需要以"l"或"L"作为后缀。
  • Java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long。
  • Java的整型常量默认为 int 型。

补充:计算机存储单位

字节(Byte):是计算机用于计量存储容量的基本单位,一个字节等于8 bit。

位(bit):是数据存储的最小单位。二进制数系统中,每个0或1就是一个位,叫做bit(比特),其中8 bit 就称为一个字节(Byte)。

转换关系:

   8 bit = 1 Byte

  1024 Byte = 1 KB

  1024 KB = 1 MB

  1024 MB = 1 GB

  1024 GB = 1 TB

浮点类型:float、double

与整数类型类似,Java 浮点类型也有固定的表数范围和字段长度,不受具体操作系统的影响。

浮点型常量有两种表示形式:

  十进制数形式。如:5.12 512.0f .512 (必须有小数点)

    科学计数法形式。如:5.12e2 512E2 100E-2

float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。

double:双精度,精度是float的两倍。通常采用此类型。

定义float类型的变量,赋值时需要以"f"或"F"作为后缀。

Java 的浮点型常量默认为double型。

说明

  • 并不是所有的小数都能可以精确的用二进制浮点数表示。二进制浮点数不能精确的表示0.1、0.01、0.001这样10的负次幂。
  • 浮点类型float、double的数据不适合在不容许舍入误差的金融计算领域。如果需要精确数字计算或保留指定位数的精度,需要使用BigDecimal类。

测试1

        //测试1
        System.out.println(0.1 + 0.2);//0.30000000000000004
        //测试2
        float f1 = 123123123f;
        float f2 = f1 + 1;
        System.out.println(f1); //1.2312312E8
        System.out.println(f2); //1.2312312E8
        System.out.println(f1 == f2); //true

测试2:定义圆周率并赋值为3.14,现有3个圆的半径分别为1.2、2.5、6,求它们的面积。

        double PI = 3.14;//圆周率

        double radius1 = 1.2;
        double radius2 = 2.5;
        int radius3 = 3;

        System.out.println("第一个⚪的面积 " + PI * radius1 * radius1); //4.521599999999999
        System.out.println("第二个⚪的面积 " + PI * radius2 * radius2); //19.625
        System.out.println("第三个⚪的面积 " + PI * radius3 * radius3); //28.259999999999998

测试3:依琳要到美国旅游,可是那里的温度是以华氏度为单位记录的。 它需要一个程序将华氏温度(80度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度

        //℃ = (℉ - 32) / 1.8
        double hua = 80;
        double she = (hua - 32) / 1.8;
        System.out.println("华氏度 " + hua + " 转换摄氏度是 " + she);//26.666666666666664

字符类型:char

char 型数据用来表示通常意义上“字符”(占2字节)

Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符。

字符型变量的三种表现形式:

        形式1:使用单引号(' ')括起来的单个字符。

             例如:char c1 = 'a'; char c2 = '中'; char c3 = '9';

     形式2:直接使用 Unicode值来表示字符型常量:‘\uXXXX’。其中,XXXX代表一个十六进制整数。

             例如:\u0023 表示 '#'。

             形式3:Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。

             例如:char c3 = '\n'; // '\n'表示换行符

转义字符

             说明

             Unicode表示方式

             \n

             换行符

             \u000a

             \t

             制表符

             \u0009

             \"

             双引号

             \u0022

             \'

             单引号

             \u0027

             \\

             反斜线

             \u005c

             \b

             退格符

             \u0008

             \r

             回车符

             \u000d

char类型是可以进行运算的。因为它都对应有Unicode码,可以看做是一个数值。

布尔类型:boolean

boolean 类型用来判断逻辑条件,一般用于流程控制语句中:

          if条件控制语句;

          while循环控制语句;

          for循环控制语句;

          do-while循环控制语句;

boolean类型数据只有两个值:true、false,无其它

          不可以使用0或非 0 的整数替代false和true,这点和C语言不同。

          拓展:Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达所操作的boolean值,在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false用0表示。——《java虚拟机规范 8版》

        boolean isFlag = true;

        if(isFlag){
            //true分支
        }else{
            //false分支
        }

编码时建议不要这样写:if ( isFlag = = true ),只有新手才如此。关键也很容易写错成if(isFlag = true),这样就变成赋值isFlag为true而不是判断!老鸟的写法是if (isFlag)或者if ( !isFlag)。

posted @ 2023-03-05 10:29  晓枫的春天  阅读(269)  评论(0编辑  收藏  举报