Java 基本数据类型以及其包装类
Java 基本数据类型:
Java八大基本数据类型:
整型:byte、short、int、long
浮点型:float、double
布尔型:boolean
字符型:char
整型:
byte:
- byte 类型占 1 字节,8位二进制组成,其中包含一位符号。
- 最小值: -2^7 = -128
- 最大值: 2^7 - 1 = 127
- 默认值为 0
- byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一
- 定义: byte a = 100,byte b = -50
- 当值超出 byte 范围时,会导致最终结果不准确, 例如: byte num = (byte) 200; 实际结果是 -56
short:
- short 类型占2个字节,16位二进制组成,其中包含一位符号。
- 最小值: -2^15 = -32768。
- 最大值: 2^15 - 1 = 32767。
- short 数据类型也可以节省空间,一个short变量实际int所占有空间的 二分之一。
- 默认值0
- 定义:short s = 1000,short r = -20000。
- 当值超出 byte 范围时,会导致最终结果不准确
int :
- int:类型占4个字节,32位二进制组成,其中包含一位符号。
- 最小值是: -2^31 = -2,147,483,648
- 最大值是:2^31 - 1 = 2,147,483,647
- 一般地整型变量默认为int类型;
- 默认值是0;
- 例子:int a = 100000, int b = -200000
long:
- long:类型占8个字节,64位二进制组成,其中包含一位符号
- 最小值是: -2^63 = -9,223,372,036,854,775,808
- 最大值是: 2^63 -1 = 9,223,372,036,854,775,807
- 这种类型主要使用在需要比较大整数的系统上;
- 默认值是0L;
- 后面加L或者l,就表示是long长整型;
- 例子: long a = 100000L,Long b = -200000L。
浮点型:
float:
- float数据类型,4个字节,是单精度、32位、符合IEEE 754标准的浮点数;
- float在储存大型浮点数组的时候可节省内存空间;
- 默认值是0.0f;
- 后面加F或者f,表示float类型;
- 浮点数不能用来表示精确的值,如货币;
- 例子:float f1 = 234.5f。
- 存在丢失精度的可能
double:
- double数据类型,8个字节,是双精度、64位、符合IEEE 754标准的浮点数;
- 浮点数的默认类型为double类型;
- double类型同样不能表示精确的值,如货币;
- 默认值是0.0d;
- 后面加D或者d,表示double类型;
- 例子:double d1 = 123.4。
- 存在丢失精度的可能
布尔型:
boolean:
- boolean数据类型表示一位的信息;
- 只有两个取值:true和false;
- 这种类型只作为一种标志来记录true/false情况;
- 默认值是false;
- 例子:boolean one = true。
字符型:
char:
- char类型是一个单一的16位Unicode字符;
- 最小值是’\u0000’(即为0);
- 最大值是’\uffff’(即为65,535);
- char数据类型可以储存任何字符;
- 例子:char letter = ‘A’。
- char类型可以存储一个汉字,因为char类型采用的是Unicode编码,Unicode编码包含汉字,所以char类型自然是可以存储一个汉字的
类型转换
- 自动转换,低类型向高类型转换。如下图,顺着箭头的方向可以自动转换的:
- 强制转换: 高类型的向低类型转换,可能会导致数据溢出或者精度丢失。
- 在计算中 低类型和高类型一起计算,会向高类型进行转换,
基本类型的包装类:
- 包装类型有: Integer 、Long、Short、Byte、Character、Double、Float、Boolean、BigInteger、BigDecmail
- 基本类型于包装类型的对照:
基本数据类型 | 对应的包装类 | 包装类的父类 |
---|---|---|
byte | java.lang.Byte | java.lang.Number |
short | java.lang.Short | java.lang.Number |
int | java.lang.Integer | java.lang.Number |
long | java.lang.Long | java.lang.Number |
float | java.lang.Float | java.lang.Number |
double | java.lang.Double | java.lang.Number |
boolean | java.lang.Boolean | java.lang.Object |
char | java.lang.Character | java.lang.Object |
- 自动拆箱与装箱, 例如 int 和 Integer :
自动装箱【基本类型转为包装类型】,实际是调用 Integer.valueOf(),例:Integer inte = 12。
自动拆箱【包装类型转为基本类型】,实际是调用 inte.intValue(),例:int i = inte。 - 包装类的作用是为了实现各种类型之间的转化,通过各种方法的调用来实现,还有封装了一些其他方法,便于我们对基本类型的操作
- 其中BigInteger、BigDecimal没有相对应的基本类型,主要应用于高精度的运算,BigInteger 支持任意精度的整数,BigDecimal支持任意精度带小数点的运算。
BigInteger常用方法: https://blog.csdn.net/zhangyong01245/article/details/101481796
BigDecimal常用方法: https://blog.csdn.net/zhangyong01245/article/details/101367139
还没有评论,来说两句吧...