java基本数据类型
来源:互联网 发布:什么叫手游数据 编辑:程序博客网 时间:2024/06/05 15:44
基本数据类(primitive data type)
. Java是一种强类型语言,每个变量都必须声明其类型。
. Java的数据类型分为两大类:基本类型(primitive type)和引用类型 (reference type)
. Java中定义了3类8种基本数据类型
. 逻辑型-boolean
q 文本型- char
q 数值型- byte, short, int, long, float, double
注:引用数据类型的大小统一为4个字节,记录的是其引用对象的地址!
整型变量
整型用于表示没有小数部分的数值,它允许是负数。
整型的范围与运行Java代码的机器无关,这正是Java程序具有很强移植能力的原因之一。于此相反,C和C++程序需要针对不同的处理器选择最有效的整形。
类型
占用存储空间
表数范围
Byte
1字节
-128~127
Short
2字节
-215 ~ 215-1 (-32768~32767)
Int
4字节
-231 ~ 231-1
(-2147483648~2147483647) 约21亿
Long
8字节
-263 ~ 263-1
ü Java 语言整型常数的三种表示形式:
q 十进制整数,如:99, -500, 0。
q 八进制整数,要求以 0 开头,如:015。
q 十六进制数,要求 0x 或 0X 开头,如:0x15 。
ü Java语言的整型常数默认为int型,声明long型常量可以后加‘ l ’或‘ L ’ ,如:
long a = 55555555; //不出错,在Int表示的范围内(21亿内)。
long b = 55555555555;//不加l出错,已经超过int表示的范围。报错:
The literal 55555555555 of type int is out of range
ü Java中没有无符号类型
课堂代码
//测试整数类型:byte,short,int,long。以及进制之间的转换问题
public class TestDataType {
public static void main(String[] args){
int a = 10;
int a2 = 010;
int a3 = 0xf;
// byte b = 200;
// System.out.println(b);
System.out.println(a);
System.out.println(a2);
System.out.println(a3);
System.out.println(Integer.toBinaryString(a));
System.out.println(Integer.toOctalString(a));
System.out.println(Integer.toHexString(a));
t a5 = 10;
long a6 = 200;
byte b2 = 100; //如果数据的大小没有超过byte/short/char的表述范围,则可以自动转型。
long a7 = 11123213232L;
long l = 3;
long l2 = l+3; //L问题
}
}
浮点型
类型
占用存储空间
表数范围
Float
4字节
-3.403E38~3.403E38
Double
8字节
-1.798E308~1.798E308
ü float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。
ü double表示这种类型的数值精度是float类型的两倍,又被称作双精度,绝大部分应用程序都采用double类型。
ü Java 浮点类型常量有两种表示形式
ü 十进制数形式,例如:
3.14 314.0 0.314
ü 科学记数法形式,如
314e2 314E2 314E-2
double
f = 314e2;
//314*10^2-->31400.0
double
f2 = 314e-
2
;
//314*10^(-2)-->3.14
ü Float类型的数值有一个后缀F/f ,没有后缀F/f的浮点数值默认为double类型。也可以在浮点数值后添加后缀D/d, 以明确其为double类型:
浮点类型float, double的数据不适合在不容许舍入误差的金融计算领域。
如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
注:
主要理由:由于字长有限,浮点数能够精确表示的数是有限的,因而也是离散的。浮点数一般都存在舍入误差,很多数字无法精确表示(例如0.1),其结果只能是接近,但不等于。
二进制浮点数不能精确的表示0.1,0.01,0.001这样10的负次幂。并不是所有的小数都能可以精确的用二进制浮点数表示。
最好完全避免使用浮点数比较:
float
f =
0
.1f;
double
d =
1.0
/
10
;
System.out.println(f==d);
//false
float
d1 = 423432423f;
float
d2 = d1+
1
;
if
(d1==d2){
System.out.println(
"d1==d2"
);
}
else
{
System.out.println(
"d1!=d2"
);
}
大数值:
Java.math下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数值。BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点运算。
浮点数使用总结:
1. 默认是double
2. 浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
3. 避免比较中使用浮点数
课堂代码
//测试浮点数
public
class
TestFloatType {
public
static
void
main(String[] args){
//double d = 3.14; //浮点数常量默认类型是double。
//float f = 6.28F;
double
d2 = 314e-
2
;
//采用科学计数法的写法
System.out.println(d2);
float
f =
0
.1f;
double
d =
1.0
/
10
;
System.out.println(f==d);
//false
}
}
- Java数据类型之基本数据类型
- java数据类型之基本数据类型
- JAVA基本数据类型、数据类型转换
- Java 数据类型(基本数据类型、引用数据类型)
- Java数据类型(基本数据类型和引用数据类型)
- Java的数据类型:基本数据类型、引用数据类型
- Java数据类型:引用数据类型与基本数据类型
- C++基本数据类型 vs. Java 基本数据类型
- MySQL基本数据类型与Java基本数据类型
- Java基本数据类型转换
- java 基本数据类型
- java基本数据类型转换
- java中的基本数据类型
- java的基本数据类型
- Java基本数据类型转换
- java 基本数据类型转换
- Java基本数据类型转换
- JAVA基本数据类型
- 二叉树-层级遍历
- 一篇文章部署ReactNative
- solr的简单配置使用
- 【Android】SeekBar禁止滑动
- HDU6216 A Cubic number and A Cubic Number【思路】
- java基本数据类型
- android小问题
- Java Collections工具类
- 95. Unique Binary Search Trees II
- linux查看文件在磁盘中是否连续的block
- 让cin不超时外挂《假算法》
- ajax(jsonp)发送ajax跨域请求
- VM12中CentOS7以NAT方式连接网络的方法
- mysql当前在线用户统计