前言:假设我来到一片虚拟世界,现在要在这虚拟世界中从零到有的进行建设。这片虚拟世界的最底层是由0和1构建而成,并且已经演化完备,那么作为在这片世界中有智慧的生物,首先要做的并不是去创造“火”,而是对世界已存在的各种“物质”进行分类,正如现实世界中,将物质总体分为“金木水火土”、“风水火土以太”的思想一样。并去分析这些物质的性质。
但是在这片虚拟世界中所有构成都是有0和1组成,而不是有原子构成,所以这些物质都具有数字的特征。
Java基本数据类型和运算符
1、基本数据类型(变量)
1.1整形 int
- int 表示变量的类型是一个整型
- 一个 int 变量占 4 个字节
int num=10;// 定义一个整型变量
System.out.println(num) ;
- 4 个字节表示的数据范围是 -2^31 -> 2^31-1
System.out.println(Integer.MAX_VALUE); //int 的最大值
System.out println(Integer.MIN_VALUE); //int 的最小值
- 若超出这个范围则会溢出
int maxValue = Integer.MAX_VALUE;
System.out.println(maxValue+1);//由于溢出,这里输出的是最小值,即 -2^31
int minValue = Integer.MIN_VALUE;
System.out.println(minValue-1);//由于溢出,这里输出的是最大值,即 2^31-1
1.2长整形 long
- 基本语法格式和创建 int 变量基本一致, 只是把类型修改成 long
- Java 中 long 类型占 8 个字节. 表示的数据范围 -2^63 -> 2^63-1
long num=10L;
System.out.println(num)
1.3短整型 short
- 基本语法格式和创建 int 变量基本一致, 只是把类型修改成 short
- short 占用 2 个字节, 表示的数据范围是 -32768 -> +32767
short num=10;
System.out.println(num);
1.4双精度浮点型 double
- Java 中的 double 虽然也是 8 个字节, 但是浮点数的内存布局和整数差别很大, 不能单纯的用 2 ^ n 的形式表示数据范围
- Java 的 double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差.
double num = 1.0;
System.out.println(num)
- 注意:不能用整形相除得到有小数的数,如下只能用浮点数相除才能得到有小数的数。
double a = 1.0;
double b = 2.0;