从零开始学习Java编程(六)--数据类型之基本类型一

一、变量

   Java语言是强类型(strongly typed)语言,也就是说每个变量和每个表达式都有一个在编译时就确定的类型,所以,所有的变量必须显式声明类型,也就是所有的变量必须先声明,后使用

   变量定义的格式:

                   type varName;

           举例说明:int i;  byte b1;

二、数据类型之基本类型

        1、数据类型的分类见下面:

             Java语言类型

   2、整型数据类型

       由上图整数类型分为4种:

       1)byte字节型:一个byte类型的在内存里面占8位,也就是2的8次方,其定义格式是: byte b1=100;

       2)short:一个short类型在内存里面占16位,也就是2的16次方,其定义格式是 short s1=32000;

       3)int:一个int类型在内存里面占32位,也就是2的32次方,其定义格式是  int i1=11111;

       4)long:一个long类型在内存占64位,也就是2的64次方 其定义格式是  long l2=922225546554L;要在定义数据的类型 加大写字母L

            int是最常用的整数类型,因此在通常情况下,一个Java类型常量默认就是int类型。

     Java中整数常量有4种表示方式:十进制、二进制、八进制和十六进制,其中八进制整数常量以0开头,十六进制的整数常量以0X或者0x开头,其中10-15以a-f(不区分大小写)来表示。二进制以0b或0B开头表示。

   下面以程序来说明以上数据类型:

/* 
  基本数据类型之整型测试程序
  作者:Gee
  */
  public class 整型Test
  {
      public static void main(String [] args)
      {
          byte b1=120;
          short s1=1234;
          int i;
          i=4234343;
          long l1=156497979797L;
          
          System.out.println("字节型数据示例:"+b1);    
          System.out.println("short类型数据示例:"+s1);
          System.out.println("int类型数据示例:"+i);
          System.out.println("long类型数据示例:"+l1);
          
          //整型常量数据示例:
          int octalValue=013;  //八进制数据以0开头;
          int  hexValue=0X13; //十六进制数据以0X开头;
          int hexValue1=0XF;  //十六进数据以0-9 A-F来代表16个数据;
          int binVal1=0B11010100;  //二进制数据以0B开头来表示;
          int binVal2=0B01101001;
          System.out.println("八进制数据示例::"+octalValue);
          System.out.println("十六进制数据示例:"+hexValue);
          System.out.println("十六进制数据示例:"+hexValue1);
          System.out.println("二进制数据示例:"+binVal1);
          System.out.println("二进制数据示例:"+binVal2);
      }
  }

提示:所有数字在计算机底层都是以二进制形式存在的,原码是直接将一个数值换算成二进制数。但计算机以补码的形式保存所有整数。补码的计算规则:正数的补码和原码完全相同,负数的补码是其反码加1;反码是对原码按位取反,只是最高位(符号位)保持不变。

3、浮点型数据

Java语言的浮点型有两种:float和double。Java的浮点类型有固定的的表数范围和字段长度,字段长度和表数范围与机器无关。Java的浮点数遵循IEEE754标准,采用二进制数据的科学计数法来表示浮点数。对于float型数值,第1位是符号位,接下来8位表示指数,再接下来的23位表示尾数;对于double类型数值,第1位也是符号位,接下来的11位表示指数,再接下来的52位表示尾数。

Java语言的浮点数有两种表示形式:

      1)十进制数形式:这种形式就是简单的浮点数,例如:5.12,512,.512。浮点数必须包含一个小数点,否则会被当成int类型处理

      2)科学计数形式:例如:5.12E2(即5.12*10^2),5.12E2(5.12*10^2)

Java语言的浮点类型默认是double类型,如果希望Java把一个浮点类型值当成float类型处理,应该在这个浮点类型后紧跟f或F,举例说明:

         float floValue=5.12F;

        double dValue=5.12;

除此之外,Java还提供了3个特殊的浮点数值:正无穷大,负无穷大和非数,用于表示溢出和出错。

    正无穷大就是一个正数除以0,Double或Float的POSITIVE_INFINITY来表示;负无穷大通过Double或Float的NEGATIVE_INFINITY表示,非数通过Double或Float的NaN来表示。

    必须指出的是,所有的正无穷大数值 都是相等的,所有的负无穷大数值都是相等的;而NaN不与任何数值相等,甚至和NaN都不相等。

以下程序说明浮点型数据:

/* 
  基本数据类型之浮点型测试程序
  作者:Gee
  */
  public class 浮点型Test
  {
      public static void main(String [] args)
      {
          float floValue=51.2F;  //定义Float型数据必须使用F结尾;
          double floval1=5.12E2; //使用科学记数法
          double d1=51.2;  //定义double型不需要使用D结尾;
          System.out.println("float型输出:"+floValue);
          System.out.println("科学记数法输出:"+floval1);
          System.out.println("double型输出:"+d1);
          
          //以下程序测试正、负无穷大、非数是否相等
          double c1=Double.POSITIVE_INFINITY;
          float f1=Float.POSITIVE_INFINITY;
          double c2=Double.NEGATIVE_INFINITY;
          float f2=Float.NEGATIVE_INFINITY;
          System.out.println(c1==f1);  //输出正无穷大是否相等,相等为true;否则为false;
          System.out.println(c2==f2);  //输出负穷大是否相等,相等为true;否则为false;
          System.out.println(0.0/0.0==Float.NaN); //输出两个0相除之后是否等NaN;
          System.out.println(0.0/0.0);        
      }
  }

今天就到这里!

原文地址:https://www.cnblogs.com/itmonk/p/3293968.html