Java运算符
- 手机
- 2025-08-28 22:30:01

- 算术运算符 - + 正号 - - 负号 - + 加号 - - 减号 - * 乘号 - / 除 - % 取余 - ++ 自增(前) 先运算后取值 ++i; 自增(后) 先取值后运算 i++; public class exercise { public static void main(String[] args) { int i = 0; int x = 10 + i++; System.out.println(x + " " + i); int n = 0; int y = 10 + ++n; System.out.println(y+" "+n); } } public class exercise { public static void main(String[] args) { int i = 0; System.out.println(i++); int n = 0; System.out.println(++n); } } - -- 自减(前) 先运算后取值 --i; 自减(后) 先取值后运算 i--; - + 字符串相加 - 关系运算符(比较运算符)【经常出现在if结构的条件中 或者是循环结构的条件中】 - 结果都是Boolean型 要么是true 要么是false - == 相等于 - != 不等于 - < 小于 - > 大于 - <= 小于等于 - >= 大于等于 - instanceof 检查是否是类的对象 “hsp”instanceof String 结果true - 逻辑运算符:用于链接 多个条件 或 多个关系表达式 最终的结果也是一个Boolean值 - 1 短路与&& 短路或|| 取反! - 2 逻辑与& 逻辑或| 逻辑异或 ^ 【逻辑运算符的表】 - 逻辑运算符的规则 - a&b: 当a和b同时为true 结果为true 反之为false - a&&b: 当a和b同时为true 结果为true 反之为false - a|b: 当a和b有一个为true 结果就会true 反之为false - a||b: 当a和b有一个为true 结果就会true 反之为false - !a: a为true 结果为false a为false 结果为true - a^b: 当a和b不同 结果为true 否则为false - 赋值运算符 - 基本赋值运算符 = - 复合赋值运算符 +=、-=、*=、/=、%= a+=b;等价为 a=a+b - 三元运算符 - 基本语法: 条件表达式? 表达式1:表达式2; 1 如果条件表达式为true 运算后的结果为表达式1 2 如果条件表达式为false 运算后的结果为表达式2 - 使用细节 - 1 表达式1和表达式2要为可以赋给接收变量的类型(或者可以自动转换) - 2 三元运算符可以转成if-else语句 - 运算符的优先级【由高到低】 - 括号运算符 - 一元运算符 正号 负号 自增 自减 逻辑非 - 算术运算符 * / % 加法 减法 - 位移运算 左移<< 右移>> 无符号右移>>> - 关系运算符 > < >= <= == != - 位运算符 按位与 & 按位异或 ^ 按位或 | - 逻辑运算符 逻辑与 && 逻辑或|| - 条件运算符(三元运算符) ?: - 赋值运算符 = += -= *= /= %= - 标识符【Java的各种变量 方法 类等命名时所用的字符序列】的命名规则和规范 - 1 由26个英文字母的大小写 0-9 _或$组成 - 2 数字不可开头 - 3 不可使用关键字和保留字 但是能包含关键字和保留字 -常见的关键字和保留字 - 关键字: class public static void等 - 保留字: const goto 等 - 4 Java严格区分大小写 长度无限制 - 5 标识符不可以有空格 - 驼峰命名法 - 小驼峰命名法 : 第一个单词的首字母小写 后续的每个单词的首字母大写 其余字母小写【常用于变量和方法名】 - 大驼峰命名法 : 每个单子的首字母大写 其余字母小写 【常用于类名 接口名 枚举类型的命名】 - 【例外】: 常量名——全部使用大写字母 包名——全部使用小写字母 - 键盘输入语句 - 所用的包时java.util.Scanner - 创建对象 Scanner myScanner = new Scanner(System.in); - 调用里面的功能 比如: int age = myScanner.nextInt(); - 位运算【以知识点加代码的形式展现】 package lfx250219; //位运算相关的内容以及运行代码 public class locationExercise { public static void main(String[] args) { int a = 5; // 二进制:0101 int b = 3; // 二进制:0011 //- 位运算 // -按位与 & 规则:对两个操作数的对应二进制位进行逻辑与运算 // 只有当两个对应位都为1时 结果为才为1 反之为0 int result = a & b;//0001 System.out.println("5 & 3 的结果是: " + result); //- 按位或| // - 运算规则: 对两个操作数的对应二进制进行逻辑或运算 // 只要两个对应位其中有一个1 结果位为1 反之为0 int result1 = a | b;//0111 System.out.println("5 | 3 的结果是: " +result1); //- 按位异或^ // - 运算规则: 对两个操作数的对应二进制进行逻辑异或算 // 当两个对应位不同时 结果位为1 相同为0 int result2 = a ^ b;//0110 System.out.println("5 ^ 3 的结果是: " +result2); //- 按位取反(~) // - 运算规则: 对操作数进行每个二进制位进行取反操作 int result3 = ~a;//1010 System.out.println("3取反结果是:"+result3); //- 左移<< // - 运算规则: 将操作数的二进制位向左移动指定的位数 右边空出的位用0填充 // 左移 n 位相当于将该数乘以2的n次方 int result4 = a << 2;//0100 System.out.println("5 << 2 的结果是: " + result4); //- 右移>> // - 运算规则: 将操作数的二进制位向右移动指定的位数 左边空出的位用符号位填充【正数补0,负数补1】 // 右移 n 位相当于将该数除以 2 的 n 次方(向下取整) int result5 = a >> 2;//0001 System.out.println("5 >> 2 的结果是: " + result5); //- 无符号右移位>>> // - 运算规则: 将操作数的二进制位向右移动指定的位数 左边空出的位数始终用0填充 不考虑符号位 int result6 = a >>> 2;//0001 System.out.println("5 >>> 2 的结果是: " + result6); } } 【运算符的练习代码】 package lfx250219; //实现三个数的最大值 public class Exercise02 { public static void main(String[] args) { int a=35; int b=66; int c=8; int max1=a>b?a:b; int max2=max1>c?max1:c; System.out.println(max1); System.out.println(max2); } } package lfx250219; //逻辑运算符的练习 public class Exercise01 { public static void main(String[] args) { int x = 5; int y = 5; //如果只有一个与则要条件都运行完 //又两个与 如果某一个条件是false那么后面的条件就不会运行 if (x++==6&++y==6){ x=11; } System.out.println(x ); System.out.println(y); if (x++==6&&++y==6){ x=11; } System.out.println(x ); System.out.println(y); } } package lfx250219; import java.util.Scanner; public class ArithmeticOperatorExercise { //1 假如还有59天放假 问有几个星期零几天 //2 定义一个保存华氏温度 华氏温度转换为摄氏温度的公式为5/9*(华氏温度-100) //求出对应华氏温度对应的设施温度 public static void main(String[] args) { int day = 59; int week = day/7; int time= day%7; System.out.println("还有"+week+"周,"+time+"天!"); //创建一个输入的对象 Scanner myScanner = new Scanner(System.in); //定义华氏温度 double h= myScanner.nextDouble(); //定义一个摄氏温度 //此时要考虑到计算机如果是按照给的公式5/9那么一定会是0.0 //5.0/9用到的是一个浮点数除法 //整个公式先算 括号内 的再算 浮点数除法 后面是 乘法 double C=5.0/9*(h-100); System.out.println(C); } } 补浮点数除法于整数除法的区别以及浮点数除法内容 浮点数除法【浮点数又称为小数】 定义:一种用于表示实数的数据类型,它可以表示整数、小数以及非常大或者非常小的数值。浮点数除法就是对两个浮点数进行相除的运算,其结果通常也是浮点数,能够保留小数部分,从而更精确地计算结果。 与整数除法的区别: 整数除法:两个操作数都是整数类型 进行的是整数除法 整数除法会截断结果的小数部分 只保留整数部分 浮点数除法:只有一个操作数是浮点数 就会进行浮点数除法 结果会保留小数部分 package lfx250219; public class lfx { public static void main(String[] args) { int i=1;//i->1 //使用一个临时变量 //1 将i的值赋给一个中间变量 temp=i //2 在进行i++的计算 i此时等于2 //3 将中间变量赋值给i i=temp int k=i++; System.out.println(k); int b=1; int c=++b; System.out.println(c); int i1=10; int i2=20; int g=i1++; System.out.println(g); System.out.println(i2); g=--i2; //i2-- -> 19 //先运算在赋值 所以19->temp 后temp赋值给i2 System.out.println(g); System.out.println(i2); } }