-
byte
- 占用存储空间:1 字节
- 表数范围:-128 ~ 127
-
short
- 占用存储空间:2 字节
- 表数范围:-32768 ~ 32767
-
int
- 占用存储空间:4 字节
- 表数范围:-2147483648 ~ 2147483647
-
long
- 占用存储空间:8 字节
- 表数范围:-263 ~ 263-1
-
表现形式
-
十进制:默认
-
八进制:以 0 开头,例:051
-
十六进制:以 0x 开头,例:0x2A
-
二进制:以 0b 开头,例 0b0100
-
代码:
public class Code0 { public static void main(String[] args) { int a = 10; int b = 051; int c = 0x2A; int d = 0b0100; System.out.println("十进制数:" + a); System.out.println("八进制数转十进制数:" + b); System.out.println("十六进制数转十进制数:" + c); System.out.println("二进制数转十进制数:" + d); } } -
运行结果:
-
-
注意:
-
在声明长整型 long 数据时,默认类型为 int,若数据过大编辑器可能报语法错误,如下图:
-
未解决这样的问题,建议声明长整形数时,在末尾加一个L,来表示长整型数。
-
-
float
- 占用存储空间:4 字节
- 表数范围:-3.403E38 ~ 3.403E38
-
double
- 占用存储空间:8 字节
- 表数范围:-1.798E308 ~ 1.798E308
-
表现形式
-
十进制:3.14、0.314
-
科学计数法:3.14E2、0.314E-2
-
代码:
public class Code0 { public static void main(String[] args) { double a = 3.14; double b = 0.314E2; double c = 3.14E-2; System.out.println(a); System.out.println(b); System.out.println(c); } } -
运行结果:
-
-
数据不精确
-
浮点数不精确,尽量不要用于比较。具体看下面的例子
-
例 1 代码:
public class Code0 { public static void main(String[] args) { float a = 0.1F; double b = 1.0 / 10; System.out.println(b); System.out.println(a == b); } } -
例 1 运行结果:
-
例 2 代码:
public class Code0 { public static void main(String[] args) { float a = 112312123F; float b = a + 1; System.out.println(a == b); } } -
例 2 运行结果:
-
-
引用包
-
可以引用 java.math 包里的两个类:BigInteger 和 BigDecimal,这两个类可以处理任何长度的数值。
-
BigInteger:实现任意精度的整数运算。
-
BigDecimal:实现任意精度的浮点运算。
-
演示:
-
代码:
import java.math.*; public class Code0 { public static void main(String[] args) { double a = 1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1; BigDecimal bd = BigDecimal.valueOf(1.0); bd = bd.subtract(BigDecimal.valueOf(0.1)); bd = bd.subtract(BigDecimal.valueOf(0.1)); bd = bd.subtract(BigDecimal.valueOf(0.1)); bd = bd.subtract(BigDecimal.valueOf(0.1)); bd = bd.subtract(BigDecimal.valueOf(0.1)); System.out.println(a); System.out.println(bd); } } -
运行结果:
-
代码的 7 ~ 12 行是借助 BigDecimal 类对一个数值进行减法,每次减 0.1;
-
-
-
char
- 占用存储空间:2 字节
- char 类型用来表示在 Unicode 编码表中的字符。
-
定义字符:
char a = 'a'; char b = '中';
-
十六进制字符
-
在 Unicode 编码表中可以使用十六进制表示一个字符,例:
-
代码:
public class Code0 { public static void main(String[] args) { char varName = 'u0070'; System.out.println(varName); } } -
运行结果:
-
十六进制 0070 表示字母 p。u 表示转义字符。
-
-
转义字符
-
转义字符表:
-
例:
-
代码:
public class Code0 { public static void main(String[] args) { char a = 'u0061'; char b = 'u0062'; System.out.println("第一次输出n" + a + 'b' + b); System.out.println("第二次输出n" + a + 'n' + b); System.out.println("第三次输出n" + a + 'r' + b); System.out.println("第四次输出n" + a + 't' + b); System.out.println("第五次输出n" + a + '"' + b); System.out.println("第六次输出n" + a + ''' + b); System.out.println("第七次输出n" + a + '\' + b); } } -
运行结果:
-
-
-
Boolean
- 占用存储空间:1 位(不是 1 个字节)
- 值:True-真,False-假
- Java 中布尔值与数字 1 0 无关
-
使用场景
-
一般用于条件判断,if 语句。
-
关系表达式、条件表达式及逻辑运算最终的运算结果是一个布尔值。
-
代码:
public class Code0 { public static void main(String[] args) { if(true) System.out.println(true); if(10 > 1) System.out.println(true); if(10 > 1 && 1 > 0) System.out.println(true); } } -
运行结果:
-



