一.类型转换
当我们需要把变量或者字面量赋值给其它类型的变量时,就需要进行类型转换。类型转换分为下面三种:
-
自动类型转换
-
强制类型转换
-
表达式的自动类型转
1.1 强制类型转换
强制类型转换就是强行将类型范围大的变量或字面量赋值给类型范围小的变量。但是,强制类型转换也伴随着以下问题:
-
可能造成数据溢出
-
浮点型转换成整形,直接丢掉小数部分,保留整数部分返回
1.2 自动类型转换
1.什么是自动类型转换
自动类型转换就是类型范围小的变量或字面量,可以直接赋值给类型范围大的变量。如:
float a = 10;
double b=a;
2.类型范围从小到大图
3.表达式的自动类型转换
在表达式中,小范围的类型会自动转换成大范围的类型参与运算,表达式的最终结果类型由表达式中的最高类型决定。byte、short、char是直接转换成int类型参与运算的。
二.运算符
2.1 什么是运算符
对字面量或者变量进行操作的符号。
2.2 算数运算符
1.算术运算符
2.算术运算符使用时的注意事项
- Java中二个整数相除还是整数
- +符号与字符串运算的时候是作连接符的,其结果依然是一个字符
2.3 自增、自减运算符
1. 自增、自减运算符
2. 自增、自减运算符使用时的注意事项
- 只能操作变量,不能操作字面量
- ++、--单独使用时放在变量前后没有区别
- 非单独使用:在变量前,先进行变量的自增或自减,在使用变量。在变量后,先使用变量,在进行变量自增或自减。
2.4 赋值运算符
1.基本赋值运算符:就是 "="
2.扩展赋值运算符
Note:扩展的赋值运算符隐含了强制类型转换
2.5 比较运算符
是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(false,true)
Note:在做相等判断时,不要把==误写成=
2.6 逻辑运算符
就是把多个条件的布尔结果放在一起运算,最终返回一个布尔结果
短路逻辑运算符:
Note:逻辑与“&”、逻辑或“|”:无论左边是false好是true,右边都要执行
2.7 三元运算符
1.三元运算符的格式
2.三元运算符的执行流程
首先计算条件表达式的值,如果值为true,返回值1,如果为false,返回值2。
2.8 移位运算符
Java 中有三种移位运算符:
Java 移位运算符总结
<<
:左移运算符,向左移若干位,高位丢弃,低位补零。x << 1
,相当于 x 乘以 2(不溢出的情况下)。>>
:带符号右移,向右移若干位,高位补符号位,低位丢弃。正数高位补 0,负数高位补 1。x >> 1
,相当于 x 除以 2。>>>
:无符号右移,忽略符号位,空位都以 0 补齐。
由于 double
,float
在二进制中的表现比较特殊,因此不能来进行移位操作。
移位操作符实际上支持的类型只有 int 和 long,编译器在对short
、byte、char类型进行移位前,都会将其转换为 int 类型再操作。
如果移位的位数超过数值所占有的位数会怎样?
当 int 类型左移/右移位数大于等于 32 位操作时,会先求余(%)后再进行左移/右移操作。也就是说左移/右移 32 位相当于不进行移位操作(32%32=0),左移/右移 42 位相当于左移/右移 10 位(42%32=10)。当 long 类型进行左移/右移操作时,由于 long 对应的二进制是 64 位,因此求余操作的基数也变成了 64。
也就是说:x<<42
等同于x<<10
,x>>42
等同于x>>10
,x >>>42
等同于x >>> 10
。
2.9 运算符优先级
在表达式中,哪个运算符先执行后执行是要看优先级的,例如 * , / 的优先级高于+,-
三.键盘录入技术
1.什么是API
API是Java写好的程序,我们可以直接调用。
2.API文档下载
3.键盘录入功能的三个步骤