javase基础03-运算符

运算符是用来计算数据的符号。数据可以是常量,也可以是变量。被运算符操作的数我们称为操作数。

1.算术运算符

算术运算符最常见的操作就是将操作数参与数学计算,

+,-,*,/,%,++,--

+的用法

a:加法
b:正号
c:字符串连接符

/和%的区别

数据做除法操作的时候,/取得是商,%取得是余数

++和--的用法

a:他们的作用是自增或者自减
b:使用

单独使用

放在操作数据的前面和后面效果一样。
a++或者++a效果一样。

参与操作使用

放在操作数的前面:先自增或者自减,再参与操作

int a = 10;
int b = ++a;

放在操作数的后面:先参与操作,再自增或者自减

int a = 10;
int b = a++;

注意:

  1. 加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串。
  2. 除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除。
  3. “%”为整除取余符号,小数取余没有意义。结果符号与被取余符号相同。
  4. 整数做被除数,0不能做除数,否则报错。

2.赋值运算符

赋值运算符就是为变量赋值的符号

A:=,+=,-=,*=,/=,%=等

B:=叫做赋值运算符,也是最基本的赋值运算符

    int x = 10; 把10赋值给int类型的变量x。
C:扩展的赋值运算符的特点:
隐含了自动强制转换。

注意:赋值运算符左边必须是变量

面试题:

short s = 1;
s = s + 1;

short s = 1;
s += 1;
请问上面的代码哪个有问题?

3.比较运算符

比较运算符,又叫关系运算符,它是用来判断两个操作数的大小关系及是否相等关系的,结果是布尔值true或者false。

A:==,!=,>,>=,<,<=
B:无论运算符两端简单还是复杂最终结果是boolean类型。
C:千万不要把==写成了=

4.逻辑运算符(条件运算符)

逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值true或false。

A:&,|,^,!,&&,||
B:逻辑运算符用于连接boolean类型的式子
C:结论
    &:有false则false
    |:有true则true
    ^:相同则false,不同则true。
        情侣关系。
    !:非true则false,非false则true
    
    &&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。
    ||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。

5.三元运算符

A:格式

比较表达式?表达式1:表达式2;

B:执行流程:

首先计算比较表达式的值,看是true还是false。
如果是true,表达式1就是结果。
如果是false,表达式2就是结果。

C:案例:

a:比较两个数据是否相等
b:获取两个数据中的最大值
c:获取三个数据中的最大值

6.位运算符

按位异或 ^

           仅当两个操作数不同一时候。输出结果才为1,否则为0.

12 的二进制为 1100
5   的二进制为 0101
则 12 | 5 的二进制为 1001。则完整的运算式为 12 & 5 = 9

A:^的特殊用法

            一个数据针对另一个数据位异或两次,该数不变

B:面试题

a:请实现两个变量的交换
    **采用第三方变量
    **用位异或运算符
        左边a,b,a
        右边a^b
b:请用最有效率的方式计算出2乘以8的结果
    2<<3

按位或 |

按位与 &

按位非~(按位取反)

         ~的作用是各位数字取反

注意:

        位运算符操作的都是数值的二进制补码,数字的真正值都需要转为原码.

移位运算符

<<
左边数据×2的移动次幂;
空位补零,移除的最高位丢弃;

>>
左边数据÷2的移动次幂
右移时,符号位将随同移动,为正时,最高位为0,补0;为负时,最高位为1,最高位补1

>>>
无论最高位是0,还是1,左边移空的都补零;

7.运算符优先级

优先级 描述 运算符
1 括号 ()、[]
2 正负号 +、-
3 自增自减,非 ++、--、!
4 乘除,取余 *、/、%
5 加减 +、-
6 移位运算 <<、>>、>>>
7 大小关系 >、>=、<、<=
8 相等关系 ==、!=
9 按位与 &
10 按位异或 ^
11 按位或 |
12 逻辑与 &&
13 逻辑或 ||
14 条件运算 ?:
15 赋值运算 =、+=、-=、*=、/=、%=
16 位赋值运算 &=、|=、<<=、>>=、>>>=

在开发过程中一般使用()来区别,运算优先级.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本章将会介绍 模块和源文件访问级别访问控制语法自定义类型子类常量、变量、属性、下标构造器协议扩展泛型类型别名位运算...
    寒桥阅读 916评论 0 2
  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,本章逐一介绍这些运算...
    许先生__阅读 625评论 0 3
  • 谨记: 上帝在缔造每个人的时候,给予每个人的一切都是相同的,然而,人与人却是存在如此大的差距,记着上帝为你关上了一...
    长风留言阅读 5,115评论 0 5
  • C++运算符重载-上篇 本章内容:1. 运算符重载的概述2. 重载算术运算符3. 重载按位运算符和二元逻辑运算符4...
    Haley_2013阅读 2,328评论 0 51
  • 大叔不是要推销什么商品,大叔是要从众多的维修维修案例中,找出哪个品牌的壶质量好,用料好,还有使用方便维修方便等等,...
    均真阅读 265评论 0 1