数据类型
- 每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(字节)。
- java 数据类型分为两大类 基本数据类型, 引用类型
- 基本数据类型有 8 种, 数值型 [byte , short , int , long , float ,double] char , boolean
- 引用类型 [类,接口, 数组]
1. 整数类型
1.1 基本介绍
- Java的整数类型就是用于存放整数值的,比如12,30,3456等等
1.2 案例演示
byte nl =10;//1个字节
short n2 =10;//2个字节
int n3 = 10;//4个字节
long n4= 10;//8个字节
1.3 整型的类型
1.4 整型的使用细节 IntDetail.java
public class IntDetail {
public static void main(String[] args) {
//Java的整型常量(具体值)默认为 int 型,声明long型常量须后加‘l’或‘L’
int n1 = 1;//4个字节
//int n2 = 1L;//对不对?不对
long n3 = 1L;//对
}
}
2. 浮点类型
2.1 基本介绍
- Java的浮点类型可以表示一个小数,比如123.4 , 7.8 ,0.12 等等
2.2 案例演示
double score = 66.6;
2.3 浮点型的分类
2.4 说明一下
1) 关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位
2) 尾数部分可能丢失,造成精度损失(小数都是近似值
)。
2.5 浮点型使用细节
- 注意:Java 默认浮点常量为
double
型,声明float
类型常量,须加“f”或 “F”
public class FloatDetail {
//编写一个main方法
public static void main(String[] args) {
//Java 的浮点型常量(具体值)默认为double型,声明float型常量,须后加‘f’或‘F'
//float num1 = 1.1; //对不对?错误
float num2 = 1.1F; //对的
double num3 = 1.1; //对
double num4 = 1.1f; //对
//十进制数形式:如:5.12 512.0f .512 (必须有小数点)
double num5 = .123; //等价 0.123
System.out.println(num5);
//科学计数法形式:如:5.12e2 [5.12 * 10的2次方 ] 5.12E-2 [5.12 / 10的2次方]
System.out.println(5.12e2);//512.0
System.out.println(5.12E-2);//0.0512
//通常情况下,应该使用double型,因为它比float型更精确。
//[举例说明]double num9 = 2.1234567851;float num10 = 2.1234567851F;
double num9 = 2.1234567851;
float num10 = 2.1234567851F;
System.out.println(num9);//2.1234567851
System.out.println(num10);//2.1234567
//浮点数使用陷阱: 2.7 和 8.1 / 3 比较
//看看一段代码
double num11 = 2.7;
double num12 = 8.1 / 3;
System.out.println(num11);//2.7
System.out.println(num12);//2.6999999999999997,接近2.7的一个小数,而不是2.7
//得到一个重要的使用点: 当我们对运算结果是小数的进行相等判断是,要小心
//应该是以两个数的差值的绝对值,在某个精度范围类判断
if( num11 == num12) {
System.out.println("num11 == num12 相等");
}
//正确的写法
if(Math.abs(num11 - num12) < 0.000001 ) {
System.out.println("差值非常小,到我的规定精度,认为相等...");
}
// 可以通过java API
System.out.println(Math.abs(num11 - num12));
//细节:如果是直接查询得的的小数或者直接赋值,是可以判断相等
}
}
3. 字符类型(char)
3.1 基本介绍
- 字符类型可以表示单个字符,字符类型是
char
,char
是两个字节(可以存放汉字),多个字符我们用字符串String
3.2 案例演示
char c1 = 'a';
char c2 = '\t';
char c3 = '兮';
char c4 = 97; //说明: 字符类型可以直接存放一个数字
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);//当输出c4时候,会输出97表示的字符 => 编码的概念
3.3 字符类型使用细节
- Unicode编码转换:http://tool.chinaz.com/Tools/Unicode.aspx
- a 转换后为 97
//在java中,char的本质是一个整数,在默认输出时,是unicode码对应的字符
//要输出对应的数字,可以(int)字符
char c1 = 97;
System.out.println(c1); // a
char c2 = 'a'; //输出'a' 对应的 数字
System.out.println((int)c2);//97
char c3 = '兮';
System.out.println((int)c3);//20846
char c4 = 20846;
System.out.println(c4);//兮
//char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码.
System.out.println('a' + 10);//107
//课堂小测试
char c5 = 'b' + 1;//98+1==> 99
System.out.println((int)c5); //99
System.out.println(c5); //99->对应的字符->编码表ASCII(规定好的)=>c
3.4 字符类型本质探讨
3.5 ASCII 码介绍(了解)
3.6 Unicode 编码介绍(了解)
3.7 UTF-8 编码介绍(了解)
4. 布尔类型 (boolean)
//演示判断成绩是否通过的案例
//定义一个布尔变量
boolean isPass = true;
if(isPass == true) {
System.out.println("考试通过,恭喜");
} else {
System.out.println("考试没有通过,下次努力");
}