Java中九种基本数据类型以及他们的封装类

来源:互联网 发布:2007nba总决赛数据 编辑:程序博客网 时间:2024/05/16 20:28

Java有两种有效的数据类型

  • 原始数据类型
  • 引用数据类型

原始数据类型

Java支持8种原始数据类型。

字节型(byte)

  • 字节型是一种8位的有正负的二进制整数
  • 最小值是-128 (-2^7)
  • 最大值是127(2^7 - 1)
  • 默认值是0
  • 字节类型主要是为了在计算机内存中节省空间,字节型比整数型小了4倍
  • 包装类 java.lang.Byte

短数型(short)

  • 短数型是16位有正负的二进制整数
  • 最小值是-32768(-2^15)
  • 最大值是32767(2^15 - 1)
  • 短数型也是为了节省内存空间,短数型比整数小2倍
  • 默认值0
  • 包装类java.lang.Short

整数型(int)

  • 整数型是一种32位的有正负的二进制数
  • 最小值是 - 2,147,483,648(-2^31)
  • 最大值是 2,147,483,647(2^31 -1)
  • 默认值是0
  • 一般被应用于整数值,一般都够用
  • 包装类java.lang.Integer

长整型(long)

  • 长整型是一种64位的有正负的二进制数
  • 最小值是 -9,223,372,036,854,775,808(-2^63)
  • 最大值是 9,223,372,036,854,775,807 (2^63 -1)
  • 这种数据类型一般使用在比整数范围更大的应用中
  • 默认值是0L
  • 包装类是java.lang.Long

浮点型(float)

  • 浮点型是一种单精度的32位IEEE754标准下的浮点数据
  • 主要是为了在大型浮点数组中节省数据
  • 默认值是0.0f
  • 浮点型不能用于货币等类似的精确数据中
  • 包装类是java.lang.Float

双精度型(double)

  • 双精度型是一种双精度哦4位的IEEE754标准下的浮点数据
  • 双精度一般被用于默认是小数的值
  • 一般不能用户货币等精确数据中
  • 默认值是0.0d
  • 包装类是java.lang.Double

布尔型(boolean)

  • 布尔型数据代表一种信息比特
  • 布尔型只有两种数据表现:真(true) 和假(false)
  • 一般用户判断语句
  • 布尔型默认是false
  • 包装类是:java.lang.Boolean

字符型(char)

  • 字符型数据是简单的 16 位 Unicode 标准下的字符
  • 最小值是: ‘\u0000’ (或 0)
  • 最大值是: ‘\uffff’ (或 65,535 )
  • 字符型数据可以用来储存任意字母
  • 包装类:java.lang.Character

引用数据类型

  • 引用数据类型是由类的编辑器定义的,他们是用于访问对象的。这些变量被定义为不可更改的特定类型
  • 例如:Employee, Puppy 等等
  • 类对象和数组变量就是这种引用数据类型
  • 任何引用数据类型的默认值都为空
  • 一个引用数据类型可以被用于任何声明类型和兼容类型的对象

java还存在一种数据类型void,包装类是java.lang.Void,因为无法对它进行直接操作,所以不再描述。
基本数据类型在虚拟机中可以喝它们的包装类直接装换,速度很快,所以我们在赋值、传值的时候可以像使用基本数据类型一样使用它们的包装类,但是不代表基本数据类型可以调用包装类的方法,因为基本数据类型都是final修饰的,所以不能继承扩展新的类,也无法重新新的方法。

说说基本数据类型和它们的包装类有何区别

int 是基本类型,直接存数值
Integer是类,产生对象时用一个引用指向这个对象

Java把内存划分成两种:一种是栈内存,另一种是堆内存
在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配
而实际的对象是在存储堆内存中

int i = 5;//直接在栈中分配空间
Integer i = new Integr(5);//对象是在堆内存中,而i(引用变量)是在栈内存中
在堆中分配的内存,由java虚拟机的自动垃圾回收器来管理.
因为在堆中分配空间所需的时间远大于从栈中分配存储空间,所以JAVA速度比C 慢
当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的外覆类了。Java中每种基本类型都有相应的外覆类。
int 和 Integer 的区别

java 提供两种不同的类型:引用类型(或者封装类型,Warpper)和原始类型(或内置类型,Primitive)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型 封装类
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的 数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。

int 是基本类型,(int)(Math.Random()*100)就是一个数,可以进行加见乘除。 Integer是class ,那么 new Integer(temp)就是一个对象了,可以用到Integer这个class的方法,例如用intvalue()可以返回这个int的值。

参考:http://my.oschina.net/Bruce370/blog/511431#OSC_h3_2
http://blog.sina.com.cn/s/blog_4fdb887b0101479q.html

0 0