Java/数据类型
维基教科书,自由的教学读本
Java > 数据类型
目录 |
[编辑] 上下文链接
[编辑] 数据类型
数据类型是程序设计语言描述事物、对象的方法。Java数据类型分为内置类型和扩展类型两大类。内置类型就是Java语言本身提供的基本数据类型,而扩展类型则是Java语言根据基本类型扩展出的其他类型。扩展类型可以使Java核心库中的,也可以程序员根据需要自己扩展。
[编辑] 内置类型
Java包括如下几种内置类型:
| 类型名称 | 类型定义 | 类型取值 |
|---|---|---|
| boolean | 布尔值,作二元判断 | true, false |
| byte | 8位有符号整数 | 最小值-128,最大值127 |
| short | 16位有符号整数 | 最小值-32768,最大值32767 |
| int | 32位有符号整数 | 最小值-2147483648(-231),最大值2147483647(231-1) |
| long | 64位有符号整数 | -263~(263-1) |
| float | 32位浮点数 | 1.4E-45~3.4028235E38 |
| double | 64位浮点数 | 4.9E-324~1.7976931348623157E308 |
| char | 16位Unicode字符 | 不适用 |
内置类型也称作基本类型(Primitive Types),是其他类型的基础。所有的其他类型(包括Java核心库和用户自定义类型)都是通过基本类型扩展而来的。这些类型是我们描述对象最基本的方式。比如:判断是否使用boolean;衡量大小、长度使用各种整型(包括short, int, long)和浮点数(float和double);表达字符使用char;而处理二进制数据块使用byte。
[编辑] 浮点值的精度
浮点值
[编辑] 与我们通常所使用的小数是不同的。在使用中,它往往是难以确定的。常见的问题是定义了一个浮点数,经过一系列的计算,在数学上,它本来应该等于某个确定值
==
[编辑] 大标题文字
==
[编辑] 大标题文字
==
[编辑] 大标题文字
== == ==
。但是使用相等运算符(==)进行判断时,往往得出的结论是不等;或者本来应该大于/小于某个特定值,结果却可能刚好相反。因此,对于浮点值比较时,不能简单地使用==, >, <等运算符。
我们做计算时,往往都有一个精度,或由于客观事实,或由于我们的需要。这样我们比较两个浮点数时,就不是简单的使用比较运算符了,而是在允许的精度之内作比较。比如:比较两个浮点数(f1, f2)是否相等,精度为p
| f1 - f2 | < p ---------- ''true'' | f1 - f2 | > p ---------- ''false''
上面的||表示绝对值运算,java.lang.Math类对绝对值运算提供了支持。 同样,比较f1是否大于f2,如下:
( f1 - p ) > f2 ---------- ''true''
这种方法适用于大多数数据处理情况,但也有时候,必须是完全精确计算,这样就不能使用这种方法了,而应该采用java.math.BigDecimal和java.math.BigInteger来计算。
关于浮点数精度问题还可以参看您的小数点到哪里去了
[编辑] 值类型与引用类型
值类型与引用类型的区分是通过变量赋值来区分的。值类型在赋值时,把值传递给被赋值对象,而引用类型只把对象的引用传递给被赋值对象,举个例子: