3.运算符

运算符

运算符:就是对变量和常量进行操作的运算符
运算符分为算术运算符,赋值运算符,比较运算符,逻辑运算符,位运算符,和三目运算符

1.算术运算符
+,-,*,/,%,++,–
A.算术运算符在运算的时候,需要注意的是,整数作/,%操作时候只能得到整数,这是由于java规定参与运算的数据类型的精度要向上保持一致

B.+号有三个用法
a.加法
b.正号
c.字符串连接符
这里重点说一下作字符串连接符(和加法的混用)的情况
1)+号在连接字符串,字符,基本数据类型的时候是左结合的,按从左到右的顺序来。
2)字符串+其它=字符串(作字符串连接符)
3)当是字符型常量+某个基本类型的常量时(低于int的话,无论是不是int,都转化为int作计算),这里顾名思义,+号只有连接字符串的时候才气连接符的作用,不是字符串就是做加法,将字符型常量转为ascll码中对应的码值再相加。
a 97
A 65
0 48

C.++,–运算符
自加自减运算符的作用就是对变量进行+1,或者-1
需要注意的是:
++(–)放在变量的后面,x++的值是原来x的值
++(–)放在变量的前面,++x的值是自加后x的值
不管放在前面还是放在后面,x的值总是要+1的。

2.赋值运算符
赋值运算符:把左边的数据赋给右边的变量
=,+=,-=,*=,/=,%=等
二元的赋值运算符隐藏了一个强制的类型转化,右边的数据无论是什么类型的,会被默认转换为左边的数据类型。

3.比较运算符
==,!=,>,<,>=,<=
无论比较运算符的左右两边是什么,得到的结果都是是boolean型的数据,即true或者false

4.逻辑运算符
逻辑运算符是用于连接boolean类型的式子
&,|,^,!,&&,||
a.逻辑规则
逻辑与&:有false就false
逻辑或|:有true就true
逻辑异或^:相同则false,不同则truetrue(男女关系)
逻辑非|:true则false,false则true
b.简洁与&&,简洁或||
具有短路效果,只要左边能够得出结果,右边就不执行

5.位运算符
位运算符是java在内存中的运算法则,所以是对二进制数据进行操作的
&,|,^,~
<<,>>,>>>
a.可类比逻辑运算符
&:有0则0(类似于逻辑的有false则false)
| :有1则1
^ :相同为0,不同为1(一个数据对另一个数据异或两次,会回到原来的数据)
~:按位取反,1变0,0变1
b.移位运算符(当进行移位的数据是byte和short类型的时候,将自动把这些类型扩大为int型)
1)规则
“<<”:左移,左边最高位开始舍弃,右边补齐0
“>>”:右移,最高位是0,左边补齐0,最高为是1,左边补齐1
“>>>”:无符号右移,无论最高位是0还是1,左边补齐0
2)注意
当移动的位数超过的该类型的最大位数,那么编译器会对移动位数以最大位数取模。比如int型移动了33位,相当于移动了一位,32位相当于0位,31位可能会变成负数或者0。
对于正数来说,无符号右移和右移一样,所以无符号右移主要针对正数。

5.三目运算符
格式:比较表达式?表达式1:表达式2
比较表达式的值是一个boolean类型,如果是true,就把表达式1作为结果,如果是false,就把表达式2作为结果。值得注意的是两个表达式1,2的数据类型应该自动转化(以高精度为准)成一致。

另外java编程规范中提到:当表达式1,2有一个是常量表达式,另一个类型可以表达这个常量时,输出结果可以不用自动转换。
例如:
char x = ‘x’;
int i = 10;
System.out.println(false? i : x);
System.out.println(false? 10 : x);
输出结果:
120
x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值