天天看点

java基础知识——运算符运算符分类算术运算符赋值运算符关系运算符逻辑运算符三元运算符位移运算符

目录

运算符分类

算术运算符

/:除法

%:取余运算符

+:加号

++,--自增自减运算符

赋值运算符

关系运算符

逻辑运算符

基本规则

逻辑运算符&&与&,||与|的区别

三元运算符

位移运算符

左移运算符<<和右移运算符>>

无符号右移>>>

额外的运算符知识

概念:对常量和变量进行操作的符号

运算符分类

算术运算符,赋值运算符,关系运算符,逻辑运算符,三元运算符

优先级:算数运算符>关系运算符>逻辑运算符

算术运算符

算数运算符 含义
+ 正号
- 负号
+
-
*
/ 除(即算数中整数的结果)
% 取模(即算术中的求余数)
++ 自增(前)
++ 自增(后)
自减(前)
自减(后)

/:除法

整数相除只能得到整数,要想得到小数,就必须有浮点数参与运算,比如3/4=0,而3/4.0=0.75

%:取余运算符

得到的是两个相除数据的余数,结果的余数符号是跟被模数的符号一致的

例如:12%5=2  -12%5=-2  12%-5=2  -12%-5=-2

使用场景: %:判断两个数据是否整除。

+:加号

加号在Java中有两种功能:
  1. 就是数学上普通的加号,做数字相加
  2. 要是加号两边有一边是字符串,则做连接符,用于拼接出新的字符串

++,--自增自减运算符

对变量做加1或者减1的操作

单独使用的时候,++或者--无论是放在变量的前面还是后面,结果是一样的

参与操作的时候:

                 如果++或者--在变量的后面,先拿变量参与操作,后变量做++或者--

                 如果++或者--在变量的前面,先变量做++或者--,后拿变量参与操作

赋值运算符

基本的赋值运算符:=

扩展的赋值运算符:+=,-=,*=,/=,%= 隐含了强制类型转换

举例:+= 把左边和右边的数据进行运算,最后赋值给左边。左边的只能是变量

Int a=10;

a+=10; 等同于 a=(a的数据类型)(a+10);

a最后的结果等于20

关系运算符

==,!=,>,>=,<,<=

关系运算符的结果都是boolean型,也就是要么是true,要么是false

逻辑运算符

&,|,^,!,&&,||

用法:逻辑运算符一般用于连接boolean类型的表达式或者值。

表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子

算术表达式:a + b

         比较表达式:a == b(条件表达式)

基本规则

&逻辑与:有false则false。

|逻辑或:有true则true。

^逻辑异或:相同为false,不同为true。

!逻辑非:非false则true,非true则false。

逻辑运算符&&与&,||与|的区别

A:&&和&的区别?

         a:最终结果一样。

         b:&&具有短路效果。左边是false,右边不执行。

         &是无论左边是false还是true,右边都会执行

B:||和|的区别?

         a:最终结果一样

         b:||具有短路效果.左边是true,右边不执行

         |是无论左边是false还是true,右边都会执行

三元运算符

格式

         (关系表达式)?表达式1:表达式2;

         如果条件为true,运算后的结果是表达式1;

         如果条件为false,运算后的结果是表达式2;

条件表达式是boolean类型,表达式1和表达式2必须是可以统一成一个类型的结果,因为必须要有一个统一类型去接收结果,如果表达式1是int类型,而表达式2是String类型,就无法定义到底要什么类型来接收结果,如果一个是int,一个是double,则可以定义结果为double来接收

例如:判断一个成绩,输出优秀、及格还是不及格,要求:使用三目运算符完成

Int score = 99;

String result = score>80?"优秀":score>60?"及格":"不及格";

位移运算符

左移运算符<<和右移运算符>>

结论:
  1. 位运算符操作的都是整型的数据
  2. <<:在一定范围内,每向左移一位,相当于乘以2

>>:在一定范围内,每向右移一位,相当于除以2

最好我们把要位移的数据进行二进制展示,再做左移或者右移操作,左移最低位补0,而右移要看原来数字最高位是1还是0,如果是负数,最高位为1,则空缺位补上1,如果是整数,最高位是0,则空缺位补上0,这样就知道最后移动后到底得到的数是多少

无符号右移>>>

被移数据的二进制最高位无论是0或者是1,空缺位都用0补

额外的运算符知识

java基础知识——运算符运算符分类算术运算符赋值运算符关系运算符逻辑运算符三元运算符位移运算符

图中的1就相当于true,0就相当于false