+ - * / % ++ --
a % b = a - a / b * b
10 % 3 = 1
-10 % 3 = -1
10 % -3 = 1
-10 % -3 = -1
++i 先自增后计算
i++ 先计算后自增
举例:
int i = 1; i = i++; //1. temp = i; 2. i = i + 1; 3. i = temp; System.out.println(i);//1
int i = 1; i = ++i; // 1. i = i +1; 2. temp = i; 3. i = temp; System.out.println(i);//2关系运算符
== != < > <= >=
结果都为boolean值
逻辑运算符短路与 && 短路或 || 取反 ! 逻辑与 & 逻辑或 | 逻辑异或 ^
短路与 && 如果第一个条件为false,第二个条件不会判断,效率高
逻辑与 & 不管第一个条件是否为false,也要进行第二个条件判断,效率低
短路或 || 如果第一个条件为true,第二个条件不会判断,效率高
逻辑或 | 不管第一个条件是否为true,也要进行第二个条件判断,效率低
取反 ! 如果条件本身成立,结果为false,否则为true
逻辑异或 ^ 当a和b不同时,结果为true,否则为false
赋值运算符+= -= *= /= %=
a += b; (等价a = a + b;)
赋值运算符会进行类型转换
byte b = 3;
b += 2;(等价b = (byte)(b + 2);)
b++;同理
三元运算符条件表达式?表达式1:表达式2
结果为true为1,false为2
int a = 10; int b = 99; //1. a > b为false //2. 返回b--, 先返回b的值,再b - 1 //3. 返回的结果为99 int result = a > b ? a++ : b--;标识符的命名规则和规范
规则
1. 26个英文,0-9,_,$
2. 数字不能开头
3. 不能使用关键字和保留字,但可以包含
4. Java严格区分大小写,长度无限制
5. 不能包含空格
规范
包名:所有字母都小写
类名接口名:所有单词首字符大写(大驼峰)
变量名方法名:第一个单词小写后面单词大写(小驼峰)
常量名:所有字母都大写
键盘输入语句扫描器 Scanner
import java.util.Scanner;
public class Input{
public static void main(String args[]){
//1. 引入/导入Scanner类所在的包
//2. 创建Scanner对象,new创建一个新的对象
Scanner scanner = new Scanner(System.in);
//3. 接受用户输入
System.out.println("请输入名字:");
String name = scanner.next();
System.out.println("请输入年龄:");
int age = scanner.nextInt();
System.out.println("人的信息如下:");
System.out.println("姓名" + name + " 年龄" + age);
}
}
进制
二进制:以0b或0B开头
十进制:正常输入
八进制:以0开头
十六进制:以0x或0X开头,0-9,A-F
int n1 = 0b1010;
int n2 = 1010;
int n3 = 01010;
int n4 = 0x1010;
进制转换基本功
位运算原码反码补码
1. 最高位是符号位,0表示正数,1表示负数
2. 正数的原码反码补码都一样
3. 负数的反码 = 原码符号位不变,其他为取反
4. 负数的补码 = 负数的反码 + 1
5. 0的反码补码都是0
6. java没有无符号数
7. 计算机在运算时是以补码的方式运算的
8. 看结果是要看原码
按位与& :两位全为1,结果为1,否则为0
按位或 | : 两位有一个为1,结果为1,否则为0
按位异或 ^ : 两位一位为1一位为0,结果为1,否则为0
按位取反 ~ :0->1,1->0
算数右移 >> :低位溢出,符号位不变,并用符号位补溢出的高位
算数左移 << : 符号位不变,低位补0
逻辑右移/无符号右移 >>> :低位溢出,高位补0
基础控制结构 顺序控制程序从上到下,中间没有跳转
分支控制(简单不展开)if-else if-else
switch-case-default:
表达式数据类型应于后面case后的常量类型一致
switch中表达式的返回值必须是(byte short int char enum[枚举] String)
break语句可以跳出switch语句块,没有break会穿透执行
循环控制for(循环变量初始化; 循环条件; 循环变量迭代){
循环操作(可以多条语句);
}
while(循环条件) {
循环体语句;
循环变量迭代;
}
do {
循环体语句;
循环变量迭代;
} while(循环条件);



