IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java第四课——运算符 -> 正文阅读

[Java知识库]java第四课——运算符

目录

一:算术运算符

1.1基本四则运算符

1.2增量运算符

1.3自增、自减运算符

二:关系运算符

三:逻辑运算符

五:位运算符

5.1按位与

?5.2按位或

?5.3按位取反

5.4按位异或

六:移位运算符

七:条件运算符

八:运算符的优先级?


思维导图:?

?

一:算术运算符

1.1基本四则运算符

????????基本四则运算符非常简单,只需注意以下几点即可:

  1. 都是二元运算符,使用时必须有两个操作数;
  2. int/int =int,结果向下取整;
  3. 做除法和取模时,右=操作数不能为0;
  4. 两操作数类型不一致时,向类型大的提升。

1.2增量运算符

该种类型运算符操作完成后,会将操纵的结果赋值给左操作数。

1.3自增、自减运算符

对于自增自减运算符,主要注意前置++(--)和后置++(--)的区别即可。只需记住下面这句话即可:

前置++:先使用,后++;????????????????????????前置--:先使用,后--;
后置++:先++,后使用;????????????????????????后置--:先--,后使用;

具体实例如下:

package test;

public class test {
    public static void main(String[] args) {

        int a = 1;
        System.out.println(a++);   // 注意:后置++是先使用变量原来值,所以这里输出1
        System.out.println(a);     // 此时a++执行完毕,再次输出a的值,输出2

        int b=1;
        System.out.println(++b);    // 注意:前置++是++,后先使用变量的值,所以这里输出2
        System.out.println(b);      // 任然输出2
    }
}

运行结果如下:?


?当我们先运行完表达式,再进行输出时:

public class test {
    public static void main(String[] args) {

        int a = 1;
        a++;
        System.out.println(a);

        int b=1;
        ++b;
        System.out.println(b);
    }
}

?运行结果如下:

结论:

  1. 如果单独使用,【前置++】和【后置++】没有任何区别;
  2. 如果混合使用,【前置++】先+1,然后使用变量+1之后的值,【后置++】先使用变量原来的值,表达式结束时给变量+1;
  3. 只有变量才能使用自增/自减运算符,常量不能使用,因为常量不允许被修改。

二:关系运算符

? ? ? ? 其计算结果为true或者false,这个我们容易处理。

三:逻辑运算符

?逻辑运算符主要有三个,运算结果都是 boolean类型。

?对于”逻辑与”和“逻辑或”而言,表达式1和表达式2都是boolean类型的结果。

具体实例如下:

public class test {
    public static void main(String[] args) {


        int a = 1; int b = 2;

        System.out.println(a == 1 && b == 2);   // 左为真  且  右为真  则结果为真
        System.out.println(a == 1 && b >=100);  // 左为真  但  右为假  则结果为假
        System.out.println(a > 100 && b == 2);  // 左为假  但  右为真  则结果为假
        System.out.println(a > 100 && b > 100); // 左为假  且  右为假  则结果为假

    }
}

????????注意:短路求值?

对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式。
对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式。
& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算。但与 && || 相比, 它们不支持短路求值。

五:位运算符

????????位操作表示按二进制位运算。计算机中都是使用二进制来表示数据的(01构成的序列), 按位运算就是在按照二进制位的每一位依次进行计算。

?依次进行说明:

5.1按位与

举例:

public class test{
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a & b);

    }
}

分析:?

运行结果如下:

?5.2按位或

举例:

public class test{
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a | b);

    }
}

分析:

运行结果如下:

?5.3按位取反

举例:

public class test{
    public static void main(String[] args) {
        int a = 10;
        System.out.printf("%x\n", a);
        System.out.printf("%x\n", ~a);
    }
}

分析:

? ? ? ? 10按位取反之后变为一个负数,内存中存储的是二进制的补码,所以需要先转化为原码;符号位时1,说明该数为负,?所以通过补码得到源码后,结是-11。

运行结果如下:?

5.4按位异或

举例:

public class test{
    public static void main(String[] args) {
         int a=10;
         int b=20;
                System.out.println(a^b);
    }
}

?分析:

运行结果如下:

六:移位运算符

<<左移:最左侧位不要了,最右侧补0;

>>右移:最右侧位不要了,最左侧补符号位;?

<<<无符号右移:最右侧位不要了,最左侧补0。

?????????移位运算符用的不多,稍作了解即可,以下是一些注意事项:

?注意:
1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.
2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.
3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.
4. 移动负数位或者移位位数过大都没有意义.
?

七:条件运算符

?当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值;当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值。是 Java 中唯一的一个三目运算符, 是条件判断语句的简化写法。

举例:

public class test{
    public static void main(String[] args) {
         int a=10;
         int b=20;
         int c=a>b?a:b;
    }
}

注意:

  1. 表达式2和表达式3的结果要是同类型的,除非能发生类型隐式类型转换。
  2. 表达式不能单独存在,其产生的结果必须要被使用。

八:运算符的优先级?

无需赘述,如有需要,增加括号即可。当然,最近基本的先乘除后加减等,应该知悉。


本节内容到此结束!?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 21:36:26  更:2022-03-13 21:37:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:27:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码