1.Java是一种强类型语言,每个变量都必须声明其类型。
Java的数据类型分为两大类:基本类型(primitive type)和引用类型 (reference type)
Java中定义了3类8种基本数据类型,今天主要讲讲基本数据类型。如图
整数型(byte,short,int,long)
如图:
类型 | 占用存储空间 | 表数范围 |
Byte | 1字节 8位 | -128~127 |
Short | 2字节 16位 | -215 ~ 215-1 (-32768~32767) |
Int | 4字节 32位 | -231 ~ 231-1 (-2147483648~2147483647) 约21亿 |
Long | 8字节 64位 | -263 ~ 263-1 |
举例一个byte其它以此类推:
byte是一个字节保存的,有8个位,即8个0、1。
8位的第一个位是符号位, 也就是说0000 0001代表的是数字1 1000 0000代表的就是-1 所以正数最大位0111 1111,也就是数字127 负数最大为1111 1111,也就是数字-128所以Java中的一个byte是1个字节,其范围是-128~127
下面看看错误的,大家比对一下。
Java 语言整型常数的三种表示形式:
十进制整数,如:100, -500, 0。
八进制整数,要求以 0 开头,如:011。
十六进制数,要求 0x 或 0X 开头,如:0x15 。
如图:
Java语言的整型常数默认为int型,声明long型常量可以后加‘ l ’或‘ L ’ ,如:
long a = 10000000; //不出错,在Int表示的范围内(21亿内)。
long b = 10000000000;//必须要加10000000000L,要不然就会报错错误: 过大的整数: 10000000000
Java中没有无符号类型
浮点型
类型 | 占用存储空间 | 表数范围 |
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),其结果只能是接近, 但不等于。
PS:官方文档中好像说float指数的取值范围为-126~127,double指取的取值数范围为-1022~1023
写完了如果写得有什么问题,希望读者能够给小编留言并且指正,也可以扫下面二维码关注小编的公众号,查看小编更多初学者文章。
本公众号名为《Java之猿程之家》建立于2017年08月份,以互相学习!互相帮助!不管你是即将跨入Java之门的初学者,还是自学Java的爱好者,你都可以加小编微信(dcc939705214)!小编可以为你提供建议以及Java学习资料!不论你在学习上遇到任何问题,你随时都可以来找小编!小编会在第一时间回复你!
注:本公众号纯属个人团队公益公众号!不存在任何培训机构招生信息