一、基本数据类型
byte 和 Byte
- byte 数据类型是8位、有符号的,以二进制补码表示的整数;
- 范围是 -128(-2^7)~ 127(2^7-1)。
short 和 Short
- short 数据类型是 16 位、有符号的以二进制补码表示的整数
- 范围是 -32768(-2^15)~ 32767(2^15 - 1)。
int 和 Integer
- int 数据类型是32位、有符号的以二进制补码表示的整数;
- 范围是 -2,147,483,648(-2^31)~ 2,147,483,647(2^31 - 1);
- 一般地整型变量默认为 int 类型。
进制转换
// 转为二进制
Integer.toBinaryString(int i)
// 转为八进制
toOctalString(int i)
// 转为十进制
toHexString(int i)
// 转为 radix 进制
Integer.toString(int i, int radix)
Integer.toUnsignedString(int i, int radix)
long 和 Long
- long 数据类型是 64 位、有符号的以二进制补码表示的整数;
- 范围是 -9,223,372,036,854,775,808(-2^63)~ 9,223,372,036,854,775,807(2^63 -1);
- 默认值是 0L;"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
float 和 Float
- float 数据类型是单精度、32位、符合IEEE 754 标准的浮点数;
- 范围是 1.4E-45 ~ 3.4028235E38;
- 默认值是 0.0f;
- 浮点数不能用来表示精确的值,如货币
- 整数除以 0 会抛
ArithmeticException
异常,而小数除以 0 会得到 Infinity。
double 和 Double
- double 数据类型是双精度、64 位、符合IEEE 754 标准的浮点数;
- 范围是 4.9E-324 ~ 1.7976931348623157E308;
- 浮点数的默认类型为double类型,默认值是 0.0d;
- double类型同样不能表示精确的值,如货币。
boolean 和 Boolean
- boolean数据类型表示一位的信息;
- 这种类型只作为一种标志来记录 true/false 情况;
- 默认值是 false。
char 和 Character
- char类型是一个单一的 16 位 Unicode 字符;
- 范围是 \u0000(即为 0)~ \uffff(即为65、535);
- char 数据类型可以储存任何字符。
二、parseXXX 和 valueOf 的区别
以 Short 为例 parseShort 返回的是 Short,而 valueOf 返回的是 Short。
将字符串作为十进制转为一个符号的十进制 short。
static short parseShort(String s)
将字符串作为 radix 进制转为一个符号的十进制 short。
static short parseShort(String s, int radix)
将字符串作为十进制转为一个符号的十进制 Short。
static Short valueOf(String s)
将字符串作为 radix 进制转为一个符号的十进制 Short。
static Short valueOf(String s, int radix)
三、自动类型转换
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
在把容量大的类型转换为容量小的类型时必须使用强制类型转换,转换过程中可能导致溢出或损失精度。浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入。
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
四、BigInteger 和 BigDecimal
对于非常大的数,无法使用基本数据类型来存储时可以使用 BigInteger 进行存储。而对于货币或其他需要精确计算的小数,为了防止精度丢失可以使用 BigDecimal 进行存储。
初始化:
- BigInteger(String val, int radix);
- BigDecimal 不建议使用 BigDecimal(double val) 会造成精度丢失,换成 BigDecimal(String val)。
常用方法:
- 加:add(BigXXX val);
- 减:subtract(BigXXX val);
- 乘:multiply(BigXXX val);
- 除:divide(BigXXX val);
- 求余:remainder(BigXXX val);
- 绝对值:abs()。
五、特殊的转义字符
符号 | 字符含义 |
---|---|
\n | 换行 (0x0a) |
\r | 回车 (0x0d) |
\f | 换页符(0x0c) |
\b | 退格 (0x08) |
\0 | 空字符 (0x0) |
\s | 空格 (0x20) |
\t | 制表符 |
\" | 双引号 |
\' | 单引号 |
\\ | 反斜杠 |
\ddd | 八进制字符 (ddd) |
\uxxxx | 16进制Unicode字符 (xxxx) |
标题:Java 基本数据类型、BigInteger 和 BigDecimal
作者:Yi-Xing
地址:http://47.94.239.232:10014/articles/2021/01/13/1610509440644.html
博客中若有不恰当的地方,请您一定要告诉我。前路崎岖,望我们可以互相帮助,并肩前行!