java中的运算符
来源:互联网 发布:海信电视看电影软件 编辑:程序博客网 时间:2024/06/06 02:05
java运算符和表达式
- 运算由表达式表示
- 表达式:按一定的语法形式组成的自符序列
- 表达式有运算符和运算分量组成
- 运算分量可以是常量、变量、方法调用(方法的返回值)
一、运算符的分类
1、按功能可分为以下六类
- 赋值运算符 如:=、+=、-=、*=、/=等
- 算术运算符 如:+、-、*、/等
- 关系运算符 如:==、!=、>、<、=<、>=等
- 逻辑运算符 如:&&、||、~
- 条件运算符 如:? :
- 位运算符 如:&、|、!、^、<<、>>、>>>等
2、按操作数数量分位以下三类
- 一元运算符 如:++、–、+(正)、-(负)
- 二元运算符 如:+、-、*、/、%、<、>、<=、>=、<>
- 三元运算符 如:? :
二、运算符的使用及注意事项
- 算数运算符
- +: int a=5; int b=6; int sun = a+b;
- -: int a=5; int b=6;int sub = a-b;
- *: int a=5; int b=6; double multiply = a*b;
- /: int a=5; int b=6; double div = a/b;
- %: int a=5; int b=6; int mod = a%b;
注意: - 注意前缀++(–)和后缀++(–)的区别,详情参见java中的自增和自减
- 有些复杂的运算可以用java.lang.Math中的方法计算。
- 赋值运算符
- =,+=,-=,*=,/=
- String str = “hello!”;
- int a = 5;
- byte b = 111;
- char c = 98;
- char d = ‘哈哈哈’;
- long l = 123456789l;
- short st = 10;
- int g=a=90;
- int e+=a; //等价于e=e+a;
- 关系运算符
- <,>,<=,>=,==,!=
- ==进行比较的两个操作数都是数值型,如果它们的数据类型不同,只要它们的值相等,都返回true,例如:97==‘a’返回true,5.0==5也返回true。
- 如果两个操作数是引用类型,只有当两个引用变量引用的相同类的实例时才可以比较,而且必须这两个引用指向同一个对象才会返回true。
- 逻辑运算符
- !:非
- &&:与,只有两个数同时为true时,才返回true。
- ||:或,只要一个操作数为true,就会返回true;注意短路!
- 短路:在java中的逻辑与(&&)和逻辑或(||)运算符采用“短路”方法进行计算,先求出运算符左边的表达式的值,对或运算如果为true,则整个表达式的结果为true,不必对运算符右边的表达式进行计算。同样,对与运算,如果左边的表达式的值为false,则不必对右边的表达式的值进行计算,整个表达式的值为false 。
位运算符
- >>:右移,将操作数的够测很俄日禁止位右移若干位,低位溢出舍弃,高位补充原来高位的值。(相当于除2)
- <<:左移,将操作数的构成二进制位左移若干位,高位溢出,低位补零。(相当于乘2).
- >>>:无符号右移,将操作数的构成二进制位右移,低位溢出,高位补0.
- &:按位与操作。
- |:按位或操作。
- ^: 按位异或操作。
- ~:按位取反。
- * 要理解>>和>>>的区别首先要了解计算机世界的三种编码方式*
1.原码
所谓原码就是符号位加上数字的二进制表示,int为例,第一位表示符号 (0正数 1负数)简单期间一个字节表示
+7的原码为: 00000111
-7的原码为: 10000111
对于原码来说,绝对值相等的正数和负数只有符号位不同。2.原码
一个数如果为正,则它的反码与原码相同;一个数如果为负,则符号位为1,(符号位不变化,其余位数取反)。
换言之 该数的绝对值取反(绝对值取反各位都取反)。
为了简单起见,我们用1个字节来表示一个整数:
+7的反码为:00000111
-7的反码为: 111110003.补码
补码:一个数如果为正,则它的原码、反码、补码相同;一个数如果为负,去到反码然后加1。(反码加1就是补码)为了简单起见,我们用1个字节来表示一个整数:
+7的补码为: 00000111
-7的补码为: 11111001- 4 . 总结
- 原码:将最高位座位符号位,0表示正,1表示负,其余各位为数据位
- 反码:一个数为正数,则反码和原码相同;为负则符号位为1其余各位对原码取反。
- 补码:一个数为正数,则原码、反码、补码相同,为负则符号位为1,其余各位对原码取反后加1.
所以>>和>>>的区别在于:>>将符号位保留,在符号位后面补充若干个0;而>>>则是直接在符号位之前添加若干个零。
- 条件运算符
- 布尔表达式?表达式一:表达式二
例如:
- 布尔表达式?表达式一:表达式二
int i = 89;String str=i>60?"及格":"不及格";System.out.println(str);//及格
- instanceof
- 用于判断某个对象是否是类或接口类型
三、运算符的优先级
注意:
- 结合性是指运算符结合的顺序,通常都是从左到右从右到左的运算符最典型的就是负号,例如:1+-2,其意义为1加-2,符号首先和运算符右侧的内容相结合。
- 要注意区分正负号和加减号,以及按位与和逻辑与的区别。
- 在不清楚运算符的优先级是时要善用小括号()。
阅读全文
0 0
- java中的“%”运算符
- JAVA中的运算符
- java中的运算符
- java中的运算符
- java中的运算符
- Java中的运算符
- Java中的运算符
- JAVA中的运算符
- java中的运算符
- java中的运算符
- java中的++运算符
- Java中的<<运算符
- java中的运算符
- java中的运算符
- Java中的运算符
- java中的运算符
- Java中的运算符
- Java中的运算符
- Python 多CPU并行处理数据
- Qt 编码问题QTextCodec
- 对SIFT算法的理解,尤其是尺度不变性
- 用Maven中实现MyBatis逆向工程(IDEA版)
- 直接排序、选择排序(Java实现)
- java中的运算符
- leetcode657. Judge Route Circle
- 图解单片机下载程序电路原理之USB转串口线、CH340、PL2303、MAX232芯片的使用!
- 移动端开发样式CSS Hack和一些问题的处理
- 业务参数判空和判断null
- 在centos7下搭建FTP,使本地电脑与虚拟机能上传下载文件
- 11.30学习计划
- 数字图像的空间域滤波和频率域滤波
- Bixby在中国市场上线,三星推动智能手机全面跨入AI时代