java中一共有八个基本类型
数值型:int,long,short,double,float,byte
字符型:char
布尔型:boolean
int | 4个字节 | 取数范围 | -231 至231-1 |
long | 8个字节 | 取数范围 | -263至263-1 |
short | 2个字节 | 取数范围 | -215至215-1 |
double | 8个字节 | jdk给的范围 | 2-1074至(-2-52)·21023 |
float | 4个字节 | jdk给的范围 | 2-149至(2-2-23)·2127 |
byte | 1个字节 | 取数范围 | -27至27-1 |
char | 2个字节 | java关键字 | |
boolean | 没有精确定义 |
取数范围的根据:
1个字节等于8位二进制(8位二进制10000000转换成十进制是128也就是2的7次方)
按照这个可以得出基本类型的取数范围(double,float,char,boolean除外),double、float不知道为什么是那个取值范围。
其中boolean类型较特殊:
根据http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html官方文档的描述:
boolean: The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions.
This data type represents one bit of information, but its "size" isn't something that's precisely defined.
布尔数据类型只有两个可能的值:真和假。使用此数据类型为跟踪真/假条件的简单标记。这种数据类型就表示这一点信息,但是它的“大小”并不是精确定义的。
始终记住计算机中运算的基础是基于二进制的,也就是 bit 位。
byte字节,KB,MB,GB,T等都是文件大小的基本单位
如:2GB内存的计算机 = 2 * 1024 * 1024 * 1024 个字节 = 8 * 2 * 1024 * 1024 * 1024 个位
Java中整数类型就出了四个int,long,short,byte;
为啥要搞这么多?个人理解是为了在不同的需求中可以灵活调整内存使用,比如你明明知道这个需求中最大的就是数值就是100,非要定义成long,每次创建的对象中这个long变量在内存中位都用不满,但是又开辟了这么多空间,就是浪费。
单位换算:
1 Byte = 8 Bits 位
1 KB = 1024 Bytes
1 MB = 1024 KB
1 GB = 1024 MB