Java的数据类型体系

来源:互联网 发布:悬疑片推荐知乎 编辑:程序博客网 时间:2024/06/01 22:45

java的数据类型分为三大类,即布尔型、字符型、数值型,其中,数值型又分为整型和浮点型。相对于数据类型,Java的变量类型为布尔型boolean;字符型为char;整型byte、short、int、long;浮点型float、double。其中四中整型变量和两种浮点型变量分别对应于不同的精度和范围。此外,编程时还经常用到两种类变量,即String和Date。

(1)数据类型转换的种类:

Java数据类型的转换一般分为三种,分别是:简单数据类型之间的转换、字符串与其他数据类型的转换、其他实用数据类型的转换。

2)简单数据类型之间的转换:

在Java中,整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte、short、char)-int-long-float-double。

简单数据类型之间的转换又可以分为:低级到高级的自动类型转换、高级到低级的强制类型转换、包装类过度类型能够转换。

A.自动类型转换:

   低级变量可以直接转换为高级变量,这叫自动类型转换。

B.强制类型转换:

   将高级变量转换为低级变量时,情况会复杂一些,你可以使用强制类型转换。

C.包装类过度类型转换:

    ava中的包装类就是可以直接将简单类型的变量表示为一个类。Java共有六个包装类,分别是Boolean、Character、Integer、Long、Float和Double,从字面上可以看出它们分别对应于boolean、char、int、long、float和double。而String和Date本身就是类,不存在包装类的概念。

在进行简单数据类型之间的转换时,可以利用包装类进行中间过渡,一般情况下,首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的各种方法进行类型转换了。

(3)字符串型与其他数据类型的转换

几乎从Java.lang.Object类派生的所有类都提供了toString()方法,即将该类转换为字符串

(4)将字符型直接作为数值转换为其他数据类型

将字符型变量转换为数值型变量实际上有两种对应关系:一种是将其转换为对应的ASCII码;另一种是转换关系,例如,'1'就是指数值1,而不是ASCII码,对于这种转换,可以使用Character的getNumericValue(char ch)方法。

(5)各种字符类型长度

byte:

  • byte数据类型是8位、有符号的,以二进制补码表示的整数;
  • 最小值是-128(-2^7);
  • 最大值是127(2^7-1);
  • 默认值是0;
  • byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一;
  • 例子:byte a = 100,byte b = -50。

short:

  • short数据类型是16位、有符号的以二进制补码表示的整数
  • 最小值是-32768(-2^15);
  • 最大值是32767(2^15 - 1);
  • Short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一;
  • 默认值是0;
  • 例子:short s = 1000,short r = -20000。

int:

  • int数据类型是32位、有符号的以二进制补码表示的整数;
  • 最小值是-2,147,483,648(-2^31);
  • 最大值是2,147,483,647(2^31 - 1);
  • 一般地整型变量默认为int类型;
  • 默认值是0;
  • 例子:int a = 100000, int b = -200000。

long:

  • long数据类型是64位、有符号的以二进制补码表示的整数;
  • 最小值是-9,223,372,036,854,775,808(-2^63);
  • 最大值是9,223,372,036,854,775,807(2^63 -1);
  • 这种类型主要使用在需要比较大整数的系统上;
  • 默认值是0L;
  • 例子: long a = 100000L,Long b = -200000L。

float:

  • float数据类型是单精度、32位、符合IEEE 754标准的浮点数;
  • float在储存大型浮点数组的时候可节省内存空间;
  • 默认值是0.0f;
  • 浮点数不能用来表示精确的值,如货币;
  • 例子:float f1 = 234.5f。

double:

  • double数据类型是双精度、64位、符合IEEE 754标准的浮点数;
  • 浮点数的默认类型为double类型;
  • double类型同样不能表示精确的值,如货币;
  • 默认值是0.0d;
  • 例子:double d1 = 123.4。

boolean:

  • boolean数据类型表示一位的信息;
  • 只有两个取值:true和false;
  • 这种类型只作为一种标志来记录true/false情况;
  • 默认值是false;
  • 例子:boolean one = true。

char:

  • char类型是一个单一的16位Unicode字符;
  • 最小值是’\u0000’(即为0);
  • 最大值是’\uffff’(即为65,535);
  • char数据类型可以储存任何字符;
  • 例子:char letter = ‘A’。

  • 分类
    • 基本数据类型
    • byte short int long
    • float double
    • boolean
    • char
    • 引用数据类型
    • 除8种基本数据类型以外的都是引用数据类型
    • 比如:String,File,Dog,Pig,LittleRocket
  • 基本数据类型

| 数据类型 | 位数 | 取值范围 | | ------- | ---- | -------------------------- | | boolean | 1 | true\|false | | byte | 8 | -128~127 | | short | 16 | -32768~32767 | | int | 32 | -2e31~2e31-1 | | long | 64 | -2e63~2e63-1 | | float | 32 | ? | | double | 64 | ? | | char | 16 | 0-65535 ‘\u0000’~‘\uFFFF’ |

  • 类型转换

    • 隐式类型转换
    • 规则:
      • 类型兼容
      • 目标类型大于源类型 byte < short < int < long <float < double [ char < int < long < float <double]
      • 数值型表达式的转换
      • 有double 则结果为duoble
      • 有float 结果为float
      • 有 long 结果为long
      • 其他结果为int
    • 强制类型转换 数值型的
    • 大的类型转换成小的类型,需要使用(类型名)进行强制转换
    • 强制转换可能会精度丢失
    • char可以与整数型进行互转
  • 引用数据类型

    • 非基本数据类型

    • 使用方式和基本数据类型完全一样

    • 属性

    • 参数
    • 返回值

    • 赋值

    • 使用new关键字来赋值,例外(String和包装器类)

    • 比较基本数据类型和引用数据类型

    | | 基本数据类型 | 引用数据类型 | | ---- | ------ | ------------------------ | | 概念 | 单纯的值 | 对象 | | 存储位置 | 栈中 | 栈中存引用,堆中存对象本身 | | 赋值方式 | 直接赋值 | 使用new关键字,(String和包装器类除外) |

原创粉丝点击