文章目录

  • 一、运算符
    • 1.赋值运算符号
    • 2.一元运算符
    • 3.算术运算符
    • 4.关系运算符
    • 5.自增与自减运算符
    • 6.逻辑运算符
    • 7.括号运算符
    • 8.位运算符
      • 左移位:
      • 右移位:
    • 9.三元(三目)运算符
  • 二、表达式与语句
    • 1.简洁表达式

一、运算符

运算符定义:对常量和变量尽相运算操作的符号。

(图片来源于B站网课截图)

每类运算符只罗列了其中一些。下面我们来详细介绍各类运算符。

1.赋值运算符号

即用于给变量赋值的运算符

扩展赋值运算符的好处:省略了强制类型转换的操作。

2.一元运算符

大多数的表达式,运算符前后都会有操作数。但是有一种运算符比较特别,它只需要一个操作数,称为一元运算符。如下面的几个语句:

+3;  //表示正3
b = -a;   //表示负a的值赋值给变量b存放
!a;   //a的NOT运算,若a为0,则!a为1,若a不为0,则!a为0

3.算术运算符



例:算术运算符的使用

import javax.sound.midi.Soundbank;public class DataDemo02 {public static void main(String[] args) {int i =10;int j = 3;System.out.println(i+"+"+j+"="+(i + j));System.out.println(i+"-"+j+"="+(i - j));System.out.println(i+"*"+j+"="+(i * j));System.out.println(i+"/"+j+"="+(i / j));System.out.println(i+"%"+j+"="+(i % j));}
}

输出结果:

我们用求模运算来编写一个判断奇偶数的程序(结合if语句)
例:判断某一个数字是奇数还是偶数

import javax.sound.midi.Soundbank;public class DataDemo02 {public static void main(String args[]) {int num = 10;if(num % 2 == 0){System.out.println(num + "是偶数");}else{System.out.println(num + "是奇数");}}}

输出结果:

总结:


4.关系运算符

定义:关系运算符是用来描述两个变量值之间关系的

关系运算符的运算结果都是布尔类型的,只能是true或false

:关系运算符的应用

public class DataDemo02 {public static void main(String[] args) {int a = 10;int b = 20;int c = 10;//==System.out.println(a == b);System.out.println(a == c);System.out.println("-----------------");//!=System.out.println(a != b);System.out.println(a != c);System.out.println("-----------------");//<=System.out.println(a <= b);System.out.println(a <= c);System.out.println("-----------------");//>=System.out.println(a >= b);System.out.println(a >= c);System.out.println("-----------------");}
}

输出结果:

5.自增与自减运算符


:自增自减运算符的使用
单独使用
a++

public class DataDemo02 {public static void main(String[] args) {//定义一个int类型的变量int a = 5;//单独使用a++;System.out.println("a: " + a);}
}

++a

public class DataDemo02 {public static void main(String[] args) {//定义一个int类型的变量int a = 5;//单独使用++a;System.out.println("a: " + a);}
}

输出结果:

输出结果都是6。因此自增自减运算符单独使用的时候,放在变量前或后结果都一样

参与运算
a++

public class DataDemo02 {public static void main(String[] args) {//定义一个int类型的变量int a = 5;//参与运算int b = a++;System.out.println("a: " + a);System.out.println("b: " + b);}
}

输出结果:

++a

public class DataDemo02 {public static void main(String[] args) {//定义一个int类型的变量int a = 5;//参与运算int b = ++ a;System.out.println("a: " + a);System.out.println("b: " + b);}
}

输出结果:

从两个输出结果,可以看出自增自减运算符参与运算时:
运算符在变量前,先自增自减,再进行其他运算
运算符在变量后,先以原值进行运算,再自增自减

6.逻辑运算符

定义:

常见的逻辑运算符:

序号 逻辑运算符 描述
1 & AND,与
2 && 短路与
3 | OR,或
4 || 短路或
public class DataDemo02 {public static void main(String[] args) {boolean a = true;boolean b = false;System.out.println("a || b = "+(a||b));System.out.println("a | b = "+(a|b));System.out.println("a && b = "+(a&&b));System.out.println("a & b = "+(a&b));}
}

输出结果:

为什么会有两种与和或操作?

答:与分为短路与和非短路与,或分为短路或和非短路或

有一个规律是这样的:
1.对于与操作来说,如果第一个条件为假,则后面不管是真是假,最终结果都是假。
2.对于或操作来说,如果第一个条件为真,则后面不管是真是假,最终结果都是真。

也就是说对于与和或第一个条件都是一个关键性的条件,所以在Java中设置了短路与短路或,对于短路与短路或有两个区别:
(1)对于来说,要求所有的条件都判断,使用短路与如果第一个条件为false,则后面的条件将不再判断。
(2)对于来说,要求所有的条件都判断,使用短路或如果第一个条件为true,则后面的条件将不再判断。

7.括号运算符

括号运算符用来处理表达式的优先级,括号运算符能够改变运算顺序。

8.位运算符

在Java中除了具备高级语言的特点之外,也支持位运算操作。位运算操作就是指进行二进制位的运算。

在Java中支持的位操作符如表所示

序号 逻辑运算符 描述
1 & 按位与
2 | 按位或
3 ^ 异或(相同为0,不同为1)
4 ~ 取反
5 << 左移位
6 >> 右移位
7 >>> 无符号右移位

在Java中所有的数据都是以二进制数据的形式进行运算的,即如果是一个int型变量,要采用位运算的时候则必须将其变为二进制数据。

每一位二进制进行与、或、异或操作的结果如表所示:

序号 二进制数1 二进制数2 与操作(&) 或操作(|) 异或操作
1 0 0 0 0 0
2 0 1 0 1 1
3 1 0 0 1 1
4 1 1 0 1 0

:位运算的应用:假设有3和6两个数字进行与、或、异或的操作。

public class TestDemo02 {public static void main(String[] args) {int x = 3; //3的二进制数据:00000000 00000000 00000000 00000011int y = 6; //6的二进制数据:00000000 00000000 00000000 00000110System.out.println(x & y); //与操作的结果:00000000 00000000 00000000 00000010System.out.println(x | y); //或操作的结果:00000000 00000000 00000000 00000111System.out.println(x ^ y); //异或操作的结果:00000000 00000000 00000000 00000101}
}

输出结果

解读:在Java中整型数据的长度为32位,所以在前面要补30个0。
根据前面那个表格“位运算的结果表”,进行运算,最后输出的时候输出十进制数。

在计算机的数据表示中只定义了正数的表示形式,并没有定义负数的表示形式,所以一般都是利用补码的形式表示(负数)的

正数的原码、反码、补码都相同

负数的反码是除符号位为1外,其它位全取反;补码就是“反码+1”

例:求出负数的反码

public class TestDemo02 {public static void main(String[] args) {int x = -3;System.out.println(x + "的反码是:"+ ~x);}
}

输出结果:

小声逼逼一句,这里我真的没理解,但是我摸着规律了,以后有空就再想想(负数的的十进制数要和自己的的反码十进制数相加和为-1)。

在Java中也提供过了左移“<<”右移“>>” 两种操作。

左移操作是将运算数的二进制码整体左移指定位数,左移之后的空位使用0来填充。

左移位:

:对3进行左移2位操作

public class TestDemo02 {public static void main(String[] args) {int x = 3;System.out.println(x + "左移2位之后的内容是:"+ (x << 2));}
}

输出结果:

右移位:

右移操作“>>” 是将运算数的二进制码整体右移,右移后空出来的位置以符号位填充。如果是整数使用 “0” 填充,如果是负数使用 “1” 填充。

:右移操作

public class TestDemo02 {public static void main(String[] args) {int x = 3;int y = -3;System.out.println(x + "右移2位之后的内容是:"+ (x >> 2));System.out.println(y + "右移2位之后的内容是:"+ (y >> 2));}
}

输出结果

计算的时候负数采用补码的形式保存。

以上的右移操作属于带符号位的右移操作,在Java中也提供了无符号的右移操作符“>>>”,使用此操作将以0填充空出来的位。

:无符号右移

public class TestDemo02 {public static void main(String[] args) {int x = 3;int y = -3;System.out.println(x + "右移2位之后的内容是:"+ (x >>> 2));System.out.println(y + "右移2位之后的内容是:"+ (y >>> 2));}
}

输出结果

对于位操作只适合于byte、short、int、char、long类型,而且位操作后原始的操作内容并不会发生任何的改变。

9.三元(三目)运算符

格式

:三目运算符的应用

public class DataDemo02 {public static void main(String[] args) {int a = 10;int b = 20;int max = (a >= b) ? a : b;System.out.println("max = "+max);}
}

输出结果

总结

二、表达式与语句

表达式:用运算符把常量或变量连接起来的式子。

表达式的类型:表达式的类型为表达式运算结果的数据类型。
例如
整型表达式: 1+2 10*20
布尔表达式: 2>1 (20-10)<15

1.简洁表达式

略,以后再补充

【笔记】Java的运算符(赋值运算符号、一元运算符、算术运算符、关系运算符、自增与自减运算符、逻辑运算符、括号运算符、位运算符、三元(三目)运算符)、表达式与语句:简洁表达式相关推荐

  1. Java官方教程(三-2)赋值 运算和一元运算符(2020.12.19)

    前言 本文是橙子出于兴趣爱好对Java官方教程的尝试翻译,几乎每日更新,感兴趣的朋友可以关注一下橙子:翻译过程中尽可能多的对一些关键词保留了英文原文,如果你想看最纯正的英文原版教材却又看不懂,可以试着 ...

  2. java 位运算符赋值_java-运算符(算术、赋值 =、关系、逻辑、三元、位运算符)...

    基本运算符与位运算符 算术运算符:两个操作数进行计算 + 加 - 减 * 乘 / 除(取整) % 取余 例子: class ArrayTest{ public static void main(Str ...

  3. java中的算数运算符号用法与原理分析

    一.表达式求值简单说明: 1.求值表达式主要包括加减乘除四种基本运算,其实表达式可以看做由一个个二元运算构成,前一个二元运算的结果作为后一个二元运算的输入. 举个例子: "1+2-4=&qu ...

  4. C++学习笔记-----在重载的赋值运算函数中调用拷贝构造函数

    类的拷贝构造函数与赋值运算不同,拷贝构造函数是对这个类进行初始化的过程,而赋值是删除原有的东西,赋予它新的东西. 但是二者在实现上是互通的. template<class T> graph ...

  5. c 语言运算符号大全,c语言关系运算符号有哪些?

    c语言关系运算符号有".>=.==.!=".关系运算符都是双目运算符,其的作用是判明这两个表达式的大小关系:关系运算符的优先级低于算术运算符,高于赋值运算符:其运算结果只有0 ...

  6. C++ Primer 5th笔记(chap 14 重载运算和类型转换)算术和关系运算符

    运算符 双目算术运算符 + (加),-(减),*(乘),/(除),% (取模) 关系运算符 ==(等于),!= (不等于),< (小于),> (大于>,<=(小于等于),> ...

  7. Java中的~运算符号

    最近做的笔试题中出现这样一道题: 题目:What results from the following code fragment?int i = 5;int j = 10;System.out.pr ...

  8. java 复合赋值运算顺序非纯粹的从右到左

    在研究编程语言的过程中,发现 Java在运算下列代码所得到的 a 的值,与C/C++下运算的值是有区别的: int a = 5; a += a += 666; System.out.println(a ...

  9. 编程优先级c语言,C语言中运算符号的优先级

    C语言中运算符号的优先级 发布时间:2020-06-20 16:13:39 来源:亿速云 阅读:117 作者:Leah 这期内容当中小编将会给大家带来有关C语言中运算符号的优先级,以专业的角度为大家分 ...

  10. java类用三木运算编译不生效_Java 中的三目运算符使用不当所导致的问题

    Java 中的三目运算符使用不当所导致的问题 写在前面: 1.三目运算符是我们经常在代码中使用的,a= (b==null?0:1); 这样一行代 码可以代替一个 if-else,可以使代码变得清爽易读 ...

最新文章

  1. C#中IList与List区别
  2. 如何找GitHub上热门的开源项目
  3. 透过汇编另眼看世界之DLL导出函数调用
  4. python哲学翻译_Python
  5. cad求和插件_黑科技 | 无BIM建模下平面CAD自动生成门窗表
  6. 对爬虫数据分析的同学不要错过啦 数据分析数据可视化: Matplotlib
  7. 使用Thrift让Python为Java提供服务
  8. java 二进制转十进制的算法_java中位运算与整数的十进制转二进制
  9. wpsppt流程图联系效果_wps幻灯片怎么制作流程图
  10. element 表格 序号依次递增
  11. 与锤子手机HR的对话——创业没有联合创始人,CTO 等高管会把它当做自己的事业吗?...
  12. 无线信道仿真 matlab,基于Matlab的无线信道仿真.doc
  13. 数据库系统期末总结(一)(往届试卷2018A卷、C卷、E卷选择题)
  14. Exception in thread main java.sql.SQLException: Access denied for user ''@'localhost' (using passw
  15. 高级程序员之抽象能力模型
  16. cesium-加载3dTiles
  17. IT搬砖员如何认识能力圈并如何突破自我
  18. Grafana入门使用
  19. 流形上从环境空间到隐层空间是压缩的一个过程,香农极限是否是流形表示的另一个方面?
  20. 如何让淘宝客推广我们的产品?

热门文章

  1. iPhone 13如何显示电量百分比?详细教程
  2. 机智云物联网技术科普:一文看懂LoRa物联网!
  3. java unsafe park_在sun.misc.Unsafe.park(本机方法)中等待
  4. 服务器定位cpu高占用率代码php,面试官:线上服务器CPU占用率高如何排查定位问题?,...
  5. ROS:rosdep init 安装问题解决方案-转载
  6. MDN要点记录--CSS
  7. 美版饿了么上市:美国外卖行业为何落后?有哪些挑战和机遇?
  8. 背景差分运动目标检测
  9. 「端到端」和「点到点」的联系及区别
  10. 三种登录形式的实现—永久登录、每次进入页面登录、设置登录有效期