java运算符
发布日期:2021-10-03 01:51:56
浏览次数:13
分类:技术文章
本文共 4059 字,大约阅读时间需要 13 分钟。
package JavaLearnBasics; /** *java运算符: 1.算术运算符 2.关系运算符 3.位运算符 4.逻辑运算符 5.赋值运算符 6.其他运算符 * */ public class JavaOperator { private static int a =10; private static int b =20; public static void main(String[] args) { //1.算术运算符================================================================ //加法 + System.out.println("a+b="+(a+b)); //减法 System.out.printf("a-b=%d%n",a-b); //乘法 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++="+a++); System.out.println("++a="+(++a)); //自减 System.out.println("b--="+b--); System.out.println("--b="+(--b)); //2.关系运算符==================================================================== /** * == != > < >= <= * * != 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 (A != B) 为真。 > 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 (A> B)非真。 < 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 (A <B)为真。 > = 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 (A> = B)为假。 <= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 (A <= B)为真。 * */ //3.位运算符=========================================================================== //Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。 //位运算符作用在所有的位上,并且按位运算。假设A = 60,B = 13;它们的二进制格式表示将如下: Byte A = (byte) 00111100; Byte B = (byte) 00001101; //A&B = 0000 1100; //A | B = 0011 1101; //A ^ B = 0011 0001; //~A= 1100 0011; /* & 如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100 | 如果相对应位都是0,则结果为0,否则为1 (A | B)得到61,即 0011 1101 ^ 如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001 〜 按位补运算符翻转操作数的每一位,即0变成1,1变成0。 (〜A)得到-61,即1100 0011 << 按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2得到240,即 1111 0000 >> 按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2得到15即 1111 >>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 * */ System.out.println(60&13); //4.位运算符====================================================================== /* * 操作符 描述 例子 && 称为逻辑 与 运算符。当且仅当两个操作数都为真,条件才为真。 (A && B)为假。 || 称为逻辑 或 操作符。如果任何两个操作数任何一个为真,条件为真。 (A | | B)为真。 ! 称为逻辑 非 运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 * */ 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)); //5.短路逻辑运算符========================================================== //解析: 该程序使用到了短路逻辑运算符(&&),首先判断 a<4 的结果为 false, //则 b 的结果必定是 false,所以不再执行第二个操作 a++<10 的判断,所以 a 的值为 5。 int c = 5;//定义一个变量; boolean d = (c<4)&&(c++<10); System.out.println("使用短路逻辑运算符的结果为"+d); //6.赋值运算符=================================================================== /** * = 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋给C + = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 C + = A等价于C = C + A - = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 C - = A等价于C = C - A * = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 C * = A等价于C = C * A / = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 C / = A等价于C = C / A (%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 C%= A等价于C = C%A << = 左移位赋值运算符 C << = 2等价于C = C << 2 >> = 右移位赋值运算符 C >> = 2等价于C = C >> 2 &= 按位与赋值运算符 C&= 2等价于C = C&2 ^ = 按位异或赋值操作符 C ^ = 2等价于C = C ^ 2 | = 按位或赋值操作符 C | = 2等价于C = C | 2 * */ //7.条件运算符===================================================================== //条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。 int x=(1==1)? 10:20; System.out.println("x=(1==1)? 10:20 结果为"+x); //8.instanceof 运算符================================================================== /* * 该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型) * public class Car extends Vehicle { public static void main(String args[]){ Vehicle a = new Car(); boolean result = a instanceof Car; System.out.println( result); } } * */ String name = "James"; boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真 System.out.println(result); /* * Java运算符优先级 当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中, 运算符优先级不同会导致最后得出的结果差别甚大。 例如,(1+3)+(3+2)*2,这个表达式如果按加号最优先计算,答案就是 18,如果按照乘号最优先,答案则是 14。 再如,x = 7 + 3 * 2;这里x得到13,而不是20,因为乘法运算符比加法运算符有较高的优先级,所以先计算3 * 2得到6,然后再加7。 下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。 类别 操作符 关联性 后缀 () [] . (点操作符) 左到右 一元 + + - !〜 从右到左 乘性 * /% 左到右 加性 + - 左到右 移位 >> >>> << 左到右 关系 >> = << = 左到右 相等 == != 左到右 按位与 & 左到右 按位异或 ^ 左到右 按位或 | 左到右 逻辑与 && 左到右 逻辑或 | | 左到右 条件 ?: 从右到左 赋值 = + = - = * = / =%= >> = << =&= ^ = | = 从右到左 逗号 , 左到右 * */ } }转载地址:https://blog.csdn.net/kai402458953/article/details/88340416 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月28日 15时44分54秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
山东科技大学2015-2016学年第一学期程序设计基础期末考试第一场 题解
2019-05-03
Python教程-----引用模块
2019-05-03
山东科技大学2020年4月9日题解
2019-05-03
蓝桥杯题解(二)
2019-05-03
蓝桥杯题解(三)
2019-05-03
数学建模需要的Matlab知识速成,两小时Matlab速成,Matlab小白教程
2019-05-03
逆向工程核心原理笔记(一)——Hello World-2
2019-05-03
逆向工程核心原理笔记(三)——IA-32寄存器
2019-05-03
Ngrok内网穿透教程(国内地址)
2019-05-03
SpringBoot利用AOP防止请求重复提交
2019-05-03
Linux下安装Mysql5..7(Centos7)--亲测
2019-05-03
Linux下安装Nginx(Centos7)
2019-05-03
Linux下安装JDK(Centos7)
2019-05-03
SQL优化--大数据量模糊查询缓慢
2019-05-03
Linux安装Zookeeper(Centos7)
2019-05-03
ACM进阶计划(来自于南阳理工学院)
2019-05-03
Scala学习第八天 Scala主构造器、私有构造器、构造器重载实战详解
2019-05-03
Scala学习第九天 Scala的内部类实战详解
2019-05-03
Scala学习第十天 Scala单例对象、伴生对象实战详解
2019-05-03