怎么可以错过(java的运算符题目)java的运算符?,Java的运算符,java的幂运算符是多少,
运算符
算术运算符:+,-,*,/,%,++(单目),--(单目)
[%] 除法后取余数运算,也叫 模 运算符
[/] 一点要注意作用范围,int 类 要得到小数一定要强转,或改定义为浮点数,不然结果一定是有问题的
[结果数据类型] 有 Long 的默认为Long,替他的整数都默认结果为int 型
[++,--] 自加,自减,a++ —> a = a+1 (同理a--)
[++,--] 可以通过加号的位置来给他等效理解一下:b=a++,可以理解为 先执行b=a, 后执行 a=a+1; 同理b=++a,可以理解为 先执行a=a+1,后执行b=a
[+] 可用作字符串连接符:如果 + 的操作数中有一个为 String类型,则他会把 其他类型的操作数 全部 转化为 String类型,再把他们连接起来
//对应面试题
int a=10,b=20;
System.out.println(""+a+b);
System.out.println(a+b+"");
//这两个输出的结果有什么区别?
//1020 ( + 号从左往右进行,先执行转换String后连接)
//30 ( +号同样从左往右进行,同时先进行数字加和,再转成String类型)
赋值运算符:=
[=] 把右边的值赋给左边关系运算符:<,>,>=,<=,==,!=instanceof(均二元)
[==] Java 中用 == 表示两个值相等
[关系运算符的结果] 一定是一个布尔值
逻辑运算符:&&,||,!(均二元)
[与,或,非] and(∩),or(∪),取反
[&&] 在判断两个变量是否都为对的过程中,如发现一个 false 便会终止运算,例如:a&&b,若a为 False,则不会判断 b 的正误
可用如下方法验证:
int c=4;
boolean d =(c>5)&&(c++<4);
//(C>5)显然是false,如果还会 继续 往后执行 那么得到的c=5;
//如果 不往后执行 ,那么得到的c = 4;
//结果为 4;位操作符(跟二进制有关的):&,|,^,~,>>,<<,>>> ( 了解即可)
A = 0011 1100;
B = 0000 1101;
|| //就这两位是都为1的,其他都是全0,或01混合
A&B=0000 1100;
//两个相应位置的二进制数进行比较,如果都为1则该位为1,否则为0
A|B =0011 1101;
//对应位全0则结果就是0,只要有一个1就能得1
A^B =0011 0001;
//同位相同为0,不同为1;(totally)同同0
~B =1111 0010;
//取反,让它的0变成1,1变成0
<<;
//操作意义就是:*2 (左乘)
>>;
//操作意义就是:/2
对应面试题:2*8 怎么样运算最快?
答:2* 2* 2 *2
0000 0000 "0"
0000 0001 "1"
0000 0010 "2"
0000 0100 "4"
0000 1000 "8"
0001 0000 "16"
规律为:每把数字1往左移一个位置都要乘以2[位运算优点] 效率极高,直接接触底层
条件运算符:?,:(先真后假)(三元运算符)(必须掌握)
x ? y : z;
//?为判断左侧 是否为真 是真 则输出右值 否则输出:右侧的值
int score =80;
String type = score<60 ? "不及格" :"及格";(先真后假)
//String 是两个结果“不及格” “及格”的 数据类型
//type 为变量名
//score<60 是一个逻辑运算,结果为 true 或 false
//“不及格” 真结果
//“及格” 假结果扩展赋值运算符:+= ,-=, *=,/=(偷懒用的)
a+=b; //其实就是a = a + b;
//直接理解为 a 成了 a+b 的和,同理可理解 -=,/*=,/=
幂运算
Java是没有 ^ (幂)运算的,即2^3是不能被理解为2的3次方的
[^] 这里的 ^ 是位操作符(同位相同为0,不同为1)
要表示幂运算得通过函数来表达:
很多运算,我们会使用一些 工具类 来操作
优先级 (待补充)
用()是最容易看懂的,但是刚开始学不用括号更好理解优先级
最高的是一元运算符(++,--)!本文系作者 @河马 原创发布在河马博客站点。未经许可,禁止转载。
暂无评论数据