码迷,mamicode.com
首页 > 编程语言 > 详细

Java基本数据类型

时间:2015-05-24 12:56:17      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

  Java 语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定。由于是静态类型,导致 Java 语言也是强类型(Strong typed)的。强类型意味着每个变量都具有一种类型,每个表达式具有一种类型,并且每种类型都是严格定义的,类型限制了变量可以接收哪些值,表达式最终产生什么值。同时限制了这些值可以进行的操作类型以及操作的具体方式。所有的赋值操作,无论是显式的还是在方法调用中通过参数传递,都要进行类型兼容性检查。

 

数据类型

  在 Java 源代码中,每个变量都必须声明一种类型(type)。有两种类型:基本类型(primitive type) 和引用类型(reference type)。引用类型引用对象(reference to object),而基本类型直接包含值(directly contain value)。基本类型(primitive types)包括 boolean 类型以及数值类型(numeric types)。数值类型又分为整型(integer types)和浮点型(floating-point type)。整型有5种:byte short int long char(char 本质上是一种特殊的 int)。浮点类型有 float 和 double。关系整理一下如下图:

技术分享

  null 是一种特殊的类型 ,但是你不能声明一个变量为 null 类型,null 类型的唯一取值就是 null。null 可以负值给任意的引用类型或者转化成任意的引用类型。在实践中,一般把 null 当做字面值(literal),这个字面值可是是任意的引用类型。

 

  其它引用类型将在之后介绍,此处不不再赘述。

 

基本类型

  基本类型是单个值,而不是复杂的对象,基本类型不是面向对象的,主要出去效率方面的考虑,但是同时也提供基本类型的对象版本,即基本类型的包装器(wrapper)。可以直接使用这些基本类型,也可以使用基本类型构造数组或者其他自定义类型。基本类型具有明确的取值范围和数学行为。

 

基本类型 大小 最小值 最大值 包装类
boolean -- -- -- Boolean
char 16 bits Unicode 0 Unicode 216-1 Character
byte 8 bits -128 +127 Byte
short 16 bits -2^15 +2^15-1 Short
int 32 bits -2^31 +2^31-1 Integer
long 64 bits -2^63 +2^63-1 Long
float 32 bits IEEE754 IEEE754 Float
double 64 bits IEEE754 IEEE754 Double
void -- -- -- Void


基本类型之间的转换

  将一种类型的值赋给另一种类型是很常见的。在 Java 中,boolean 类型与所有其他7种类型都不能进行转换。而其他7种数值类型之间都可以互相转换,但是可能会存在精度损失或者其他一些变化。转换分为自动转换和强制转换。对于自动转换(隐式),无需任何操作,而强制类型转换需要显式转换,即使用转换操作符。

7种基本类型转换总结如下图:

技术分享

 

  在使用字面值对整数赋值的过程中,可以将 int 赋值给byte short char int,只要不超出范围。这个过程中的类型转换时自动完成的,但是如果你试图将 long 赋给byte,即使没有超出范围,也必须进行强制类型转换。例如 byte b = 10L;是错的,要进行强制转换。

 

  除了赋值以外,表达式计算过程中也可能发生一些类型转换。在表达式中,类型提升规则如下:

  • 所有 byte/short/char 都被提升为 int
  • 如果有一个操作数为 long,整个表达式提升为 long。float 和 double 情况也一样

Java基本数据类型

标签:

原文地址:http://www.cnblogs.com/Loshine/p/4525649.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!