Java运算符

- 算术运算符

    • 正号
    • 负号
    • 加号
    • 减号
  • * 乘号
  • / 除
  • % 取余
  • ++ 自增(前) 先运算后取值 ++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);
    }

}
相关推荐
查理零世31 分钟前
【蓝桥杯集训·每日一题2025】 AcWing 6134. 哞叫时间II python
python·算法·蓝桥杯
10km37 分钟前
java:Apache Commons Configuration2占位符解析异常的正确解法:${prefix:name:-default}
java·apache·configuration2·变量插值·interpolation
customer0837 分钟前
【开源免费】基于SpringBoot+Vue.JS个人博客系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
灰色人生qwer1 小时前
SpringBoot 项目配置日志输出
java·spring boot·后端
2301_793069821 小时前
Spring Boot +SQL项目优化策略,GraphQL和SQL 区别,Spring JDBC 等原理辨析(万字长文+代码)
java·数据库·spring boot·sql·jdbc·orm
阿华的代码王国1 小时前
【从0做项目】Java搜索引擎(6)& 正则表达式鲨疯了&优化正文解析
java·后端·搜索引擎·正则表达式·java项目·从0到1做项目
服务端相声演员1 小时前
Oracle JDK、Open JDK zulu下载地址
java·开发语言
是姜姜啊!1 小时前
java连接redis
java·redis
hhw1991121 小时前
spring boot知识点5
java·数据库·spring boot
EQUINOX11 小时前
lab4 CSAPP:Cachelab
java·后端·spring