本章包含视频P62至P102
写于2024.7.11
算数运算符
例如字符串相加、取模、前后自增
int j = 8;
int k = j++;
输出二者,结果:k = 8, j = 9
以上为先赋值后自增
练习
1、
而i = ++i 的计算机运算过程同样涉及到临时变量temp,结果为2。
2、
double huaShi = 1234.6;
double sheShi = 5.0 / 9 * (huaShi - 100);
sheShi = (double)5 / 9 * (huaShi - 100);
//反思:即使使用强制类型转化,5和9只用转化一个就够用了
System.out.println("华氏温度:" + huaShi);
System.out.println("对应的摄氏温度:" + sheShi);
关系运算符/比较运算符
1、除去常用,还有instanceof:检查是否是类的对象:
“hsp” instanceof String
return: true
2、关系运算符组成的表达式,称为关系表达式。
逻辑运算符
短路与或:&&、||
逻辑与或:&、|
取反/逻辑非:!
逻辑异或:^,两侧条件不同则为真,相同则为假
短路与逻辑的区别:左侧条件可以判断时短路不会再判断右边的条件,节省效率。
赋值运算符
分为基本赋值运算符和复合赋值运算符
使用细节:
注意2、4条
第四条:
byte b = 3;
b += 2;等价于 b = (byte)(b+2);
b++;等价于 b = (byte)(b+1);
三元运算符
也涉及到自动类型转换的知识,如:
int a = 3;
int b = 4;
int c = a > b ? 1.1 : 1.2;
wrong:自动类型转换错误
int c = a > b ? (int)1.1 : (int)1.2;ok
练习
求三数中最大数
int max = (n1 > n2 ? n1 : n2) > n3 ?
(n1 > n2 ? n1 : n2) : n3;
仅展示一条语句的实现方式,实际应用推荐用临时变量分开写
运算符优先级
标识符
命名规则:
练习:
命名规范:
关键字和保留字
Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用,要避免。
键盘输入语句
package HackerDemo;
import java.util.Scanner;
//表示导入这个类
public class Demo240705 {
public static void main(String[] args) {
//引入Scanner类所在的包
//在java.util包下
//创建一个对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入名字:");
String name = sc.next();//接收字符串输入
//接收一个完整标记,可理解为字符串
System.out.println("请输入年龄:");
int age = sc.nextInt();
System.out.println("请输入成绩:");
double point = sc.nextDouble();
System.out.println(name + " "
+ age + " " + point + " ");
}
}
进制转换
略,详细可见视频P87至P97.
位运算
在软件里试了一下,以上操作基于二进制?
运算过程:
详见下文原码补码反码PPT截图,基于补码运算,基于原码得到结果,符号位也算在各种码转换计算中。
原码反码补码
仍要注意:小数参与运算时,得到的结果是近似值。
本章作业:(做错部分)
知识点在:String与基本数据类型之间的相互转化。
char,int运算结果为int, char、short、byte间运算,结果也为int,知识点在上面。
String str = "18";
//需要注意字符串格式
double d = Double.parseDouble(str);
char c = 'a';
str = c + "";