Java数据类型--基本数据类型
基本类型
Java 语言提供了八种基本类型,用户无需定义也可以直接使用。其数据保存在相应的方法栈中。
基本数据类型 | 字节数 | 默认值 | 包装数据类型 | 备注 |
---|---|---|---|---|
byte | 1 | 0 | Byte | |
short | 2 | 0 | Short | |
int | 4 | 0 | Integer | |
long | 8 | 0 | Long | |
float | 4 | 0.0f | Float | 数字后加f |
double | 8 | 0.0 | Double | |
char | 2 | null | Character | 必须用单引号 |
boolean | 1 | false | Boolean |
- 布尔型
boolean 类型只含有两个值:true 和 false。字节存储为 11111111 和 00000000 。
boolean b = true;
boolean b = false; Copy to clipboardErrorCopied
- 字符型
char 类型使用单引号来表示字符。因为 Java 统一采用 unicode 编码,2 字节可以表示一字符。char 类型同样可以用十六进制码保存汉字等特殊字符:'\u0000' - '\uffff'。
char ch = 'a';
char ch = '中';
char ch = '/u3089'; Copy to clipboardErrorCopied
- 整型和浮点型
Java 没有无符号类型,所有数据都有符号。
-
整型(byte/short/int/long) 用来表示整型数据。
-
浮点型(float/double) 用来表示浮点数据,实际以指数形式存储,所以和实际值之间有偏差。
-
为 float 类型赋值必须在数字后加 f,否则数字默认被识别为 double 类型,会导致赋值出错。
-
数字基本类型都包含最大最小值常量,如
Integer.MAX_VALUE
和Integer.MIN_VALUE
. -
在浮点型有三个特殊数值表示溢出和出错:
POSITIVE_INFINITY
:正无穷大,正数除以 0 可以得到。NEGATIVE_INFINITY
:负无穷大,负数除以 0 可以得到。NaN
:非数,零除以 0 可以得到。(两个 NAN 值也不相等)
-
int n = 0;
float f = 0.0f;
long l = Long.MAX_VALUE;
double d = POSITIVE_INFINITY;Copy to clipboardErrorCopied
包装类型
均继承自 Number 抽象类,把基本类型数据封装成对象。基本类型和包装类型之间会自动进行转化。
-
基本类型(如int),是一个值。允许不赋初值,系统自动添加默认值。
-
包装类型(如Integer),是一个对象。实例化必须赋初值,且赋值后不能改变(final)。
包装类型主要用于集合框架中的元素。但阿里巴巴要求所有实体类(POJO) 属性、远程过程调用方法(RPC) 的返回值和参数都必须使用包装数据类型。以此来提醒使用者在需要使用时,必须显式地进行赋值。
类型转换
对于基础类型:
-
按上图顺序可以自动进行类型转换。但整型转化为浮点型时,如果数据过大可能会导致数据丢失精度。
-
反之则必须进行强制类型转换。但务必小心,超出范围可能会产生意想不到的错误。
int i = 'x'; // 自动转换
char c = (char)60; // 强制转换Copy to clipboardErrorCopied
但是包装类型之间的转换,需要使用特殊的方法。
Integer i = l.intValue();
Long l = i.longValue();
- 点赞
- 收藏
- 关注作者
评论(0)