运算符知识点整理
2020-06-07 16:04
63 查看
Operational Charecter 运算符
定义
定义:运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。共有5种类型
分类
1.算术运算符
1.详情
+(正号)-(负号) + - * / %(取模) (前)++ (后)++ (前)-- (后)-- +(字符串连接)
2.注意点
注意:取模(取余)运算结果的符号与被模数的符号相同,开发中,经常使用%来判断能否被除尽的情况。 例:-12 % 5 == -2
2.赋值运算符
1.详情
= += -= *= /= %=
2.注意点
注意点:1.赋值运算符可以连续赋值。 例:int i2,j2; i2 = j2 = 10; 2.赋值运算符不会改变数据本身的类型。 例:num += 2; (数据类型同num) //num = num + 2;(数据类型为int或更高)
3.比较运算符
1.详情
== != > >= < <= instanceof(检查是否是类的对象)
2.注意点
注意:比较运算符的结果是boolean类型
4.逻辑运算符
1.详情
&(逻辑与) &&(短路与) |(逻辑或) ||(短路或) !(逻辑非) ^(逻辑异或) 短路的概念:二元表达式中,当左侧的表达式能够确定结果时,程序不再执行右边的运算。这种现象就是短路。
2.注意点
注意: 1.逻辑运算符用于连接boolean类型的条件表达式;且不能连续使用。 2.区分&,&&(短路与); (开发中,推荐使用&& ) 相同点: 1.& 与 && 的运算结果相同 2.当符号左边是true时,二者都会执行符号右边的运算 不同点: 当符号左边是false时,&继续执行符号右边的运算。&&不再执行符号右边的运算。 3.区分|,与 || (短路或);(开发中,推荐使用|| ) 相同点: 1.| 与 || 的运算结果相同 2.当符号左边是false时,二者都会执行符号右边的运算 不同点: 当符号左边是true时,|继续执行符号右边的运算,而||不再执行符号右边的运算 4.区分异或( ^ )与或( | ); 不同点:当左右都为true时,结果为false。
5.位运算符
1.详情
(位运算是直接对整数的二进制进行的运算) << (左移 )>> (右移 )>>> (无符号右移)& (与运算 )| (或运算 )^ (异或运算 )~ (取反运算)
2.注意点
注意: 1. 位运算符操作的都是整型的数据 2. << :在一定范围内,每向左移1位,相当于 * 2 >> : 在一定范围内,每向右移1位,相当于 / 2 3. 针对负数:>>右移以后,最高空出来的位拿1去补; >>> 右移以后,高空出来的位拿0去补。
6.三元运算符
1.详情
结构格式: (条件表达式)? 表达式1 : 表达式2; (表达式1和表达式2要求是一致的) 输出结果: 如果条件表达式为true,则执行表达式1;条件表达式为false,则执行表达式2。
2.注意点
注意: 1.三元运算符可以嵌套使用。 2.凡是可以使用三元运算符的地方,都可以改写为if-else;反之,不成立。 3.如果程序既可以使用三元运算符,又可以使用if-else结构,优先选择“三元运算符”。原因:简洁、执行效率高。
面试
1.数值型变量数值变化1的实现数值变化为1的实现方式
1.(前)++ (后)++ (前)-- (后)-- 不改变数据类型 2.num += 1; num -= 1; 3.num = num + 1;num = num -1;
2.数值型变量数值变化1的实现数值变化为2的实现方式
数值变化为2的实现方式: 1.num += 2; num -= 2; 不改变数据类型 2.num = num + 2;num = num -2;
3.最高效方式的计算2 * 8 ?
答案: 2 << 3 或 8 << 1
//运算符的理解 int a = 23; int b = 12; //加法运算符的理解 System.out.println(a + "+" + b + "=" + (a+b)); int sum = a + b; System.out.println(a + "+" + b + "=" + sum); //减法运算符的理解 int sub = a - b; //System.out.println(a + "-" + b + "=" + a-b); // 错误,原因是a + "-" + b + "=" + a的结果是字符串,字符串不能进行减法 System.out.println(a + "-" + b + "=" + (a-b)); System.out.println(a + "-" + b + "=" + sub); //乘法运算符的理解 int mul = a * b; System.out.println(a + "*" + b + "=" + a*b); System.out.println(a + "*" + b + "=" + mul); //除法运算符的理解 //整数相除,只保留整数部分 int div = a / b; System.out.println(a + "/" + b + "=" + a/b); System.out.println(a + "/" + b + "=" + div); //若想要保留小数部分,需要进行强制类型转换。先把a的类型进行转换,转换成double类型,然后再和b相除 double d = (double)a/b; System.out.println(a + "/" + b + "=" + d); //取模运算符的理解 int yu = a % b; System.out.println(a + "%" + b + "=" + yu); //取模运算结果的正负,与模数无关,同被模数一致。 System.out.println("------------------特殊的取模----------------------"); System.out.println(5%2);//1 System.out.println(-5%-2);//-1 System.out.println(-5%2);//-1 System.out.println(5%-2);//1 //赋值运算,增加负号。 System.out.println("------------------负号----------------------"); int num1 = 12; int num2 = -num1; System.out.println("num2=" + num2); //自增1的运算。 System.out.println("------------------自增----------------------"); int i = 0; System.out.println("自增之前i=" + i); i++; System.out.println("自增第一次之后i=" + i); ++i; System.out.println("自增第二次之后i=" + i); int j = ++i;//把i自增1,然后结果赋值给j,或者说,先算++i,然后再赋值 System.out.println("自增第三次之后i=" + i); System.out.println("j="+j); int k = i++;//先算赋值,把i的值赋值给k,i原来是3,把3赋值给k,然后i在自增1,i变成4 System.out.println("自增第四次之后i=" + i); System.out.println("k="+k); //面试题:陷阱题 i = i++;//先赋值,把i原来的值重新赋值给i,不变,然后i自增,但是这个自增后的值没有在放回变量i的位置 System.out.println("自增第五次之后i=" + i); //字符串型String变量比较大小,意义是比较变量的属性(局部变量) //boolean is = str.equals(str2);//str:第一个字符串变量变量名; str2:第二个字符串变量变量名。
相关文章推荐
- Java基础语法知识点整理(注释、命名规则、类型转换、访问权限、运算符、逃逸字符、包裹类型、包装类和输出语句)
- 简练软考知识点整理-项目全面质量管理TQM
- 《深入理解javascript原型和闭包系列》 知识点整理(转)
- C语言 操作符知识点整理
- 学习笔记整理1——零碎小知识点
- 阅读log4cplus源代码过程中的小知识点整理(持续更新)
- 网络 知识点整理
- iOS项目开发中的知识点与问题收集整理
- jquery知识点整理
- 集成学习相关知识点整理
- 【数据库原理】滨江学院姜青山 期末试卷知识点笔记整理 南京信息工程大学
- 知识点整理之web.xml中配置error页面
- 阅读log4cplus源代码过程中的小知识点整理
- jQ常用知识点整理
- JavaScript学习笔记及知识点整理_3
- c/c++易错知识点整理2(预处理,const,static,sizeof)(上)
- 安卓实习期间整理知识点(十)
- 泛型知识点整理
- javaweb对应的相关前端的知识点整理
- 简练软考知识点整理-排列活动顺序