- 算术运算符
-
- 正号
-
- 负号
-
- 加号
-
- 减号
- * 乘号
- / 除
- % 取余
- ++ 自增(前) 先运算后取值 ++i;
自增(后) 先取值后运算 i++;
java
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);
}
}
java
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();
- 位运算【以知识点加代码的形式展现】
java
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);
}
}
【运算符的练习代码】
java
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);
}
}
java
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);
}
}
java
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);
}
}
补浮点数除法于整数除法的区别以及浮点数除法内容
浮点数除法【浮点数又称为小数】
定义:一种用于表示实数的数据类型,它可以表示整数、小数以及非常大或者非常小的数值。浮点数除法就是对两个浮点数进行相除的运算,其结果通常也是浮点数,能够保留小数部分,从而更精确地计算结果。
与整数除法的区别:
整数除法:两个操作数都是整数类型 进行的是整数除法 整数除法会截断结果的小数部分 只保留整数部分
浮点数除法:只有一个操作数是浮点数 就会进行浮点数除法 结果会保留小数部分
java
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);
}
}