第一张 数据类型转换
- 自动转换:将取值范围小的类型自动提升为取值范围大的类型
public static void main(String[] args) {
int i = 1;
byte b = 2;
// byte x = b + i;
// 报错
//int类型和byte类型运算,结果是int类型
int j = b + i;
System.out.println(j);
}
byte类型内存占有一个字节,在和int类型运算时会提升为int类型,自动补充三个字节,因此计算后的结构还是int类型
转换规则:范围小的类型向范围大的类型提升,byte、shortchar 直接提升为int
1.2强制转换
将1.5复制到int类型变量会发生什么?产生编译失败,肯定无法赋值。double类型内存8个字节,int类型4个字节。1.5是double类型,取值范围大于int类型。可以理解为double是8升的水壶,int是4升的水壶,不能把大水壶中水直接放进小水壶中。想要赋值成功,只有通过强制类型转换,将double类型强制转换成int类型才能赋值。
**强制类型转换**将取值范围大的类型 强制转换成取值范围小的类型
自动转换是java自动执行的,而强制转换需要我们手动执行
1.3ASCII编码表
在计算机内部都是二进制的0、1数据,如何让计算机可以直接识别人类文字的问题呢?
编码表:就是将人类的文字和一个十进制数进行对应起来组成一张表格
在char类型和int类型计算的过程中,char类型字符先查询编码表得到97,在和1求和,结果为98,char类型提升为了int类型。char类型内存2个字节,int类型内存为4个字节
第三章
3.1概述
我们在学习运算符的时候,都为每个运算符单独额创建一个新的类和main方法,我们会发现这样编写代码非常的繁琐,且重复的代码过多。能否避免这些重复的代码呢?就需要使用方法来实现