概述
运算符
算术运算符
-
*+ , - , , / , % , ++ , - - **
//算数运算符 int a = 10; int b = 20; int c = 25; int d = 25; System.out.println(a + b); System.out.println(a - b); System.out.println(a * b); System.out.println(a / (double) b); //(a/b)运算出来是int型 则为0,所以这里我们需要考虑到小数进行一个强制转换。 //取余,模运算 System.out.println(c % a); // c / a 25 / 10 = 2......5 //定义不同类型相加 long a = 1237234642356L; int b = 123; short c = 23; byte d = 8; System.out.println(a + b + c + d);//long 不同整数类型相加,其中有一个为long型,结果类型也为long System.out.println(b + c + d);//int 若没有long型,结果都为int类型。 // System.out.println((String) (c + d));//不能将int类型转换为String System.out.println((double) c + d);//31.0 double类型 // ++ -- 自增,自减 一元运算符 int a = 3; int b = a++; //执行完这行代码后,先给b赋值,将a++的值3赋值给b,再自增 //a = a + 1 System.out.println(a); //a = a + 1 int c = ++a;//执行完这行代码后,先自增,再给c赋值 将++a的值5赋值给c System.out.println(a);//5 System.out.println(b);//3 System.out.println(c);//5
赋值运算符
-
=
1)简单赋值运算符:= 2)扩展赋值运算符:+=,-=,*=,/=,%= ---扩展赋值自带强转功能 int a = 5; a += 10; //相当于a=(int)(a+10) System.out.println(a); //15 a *= 2; //相当于a=(int)(a*2) System.out.println(a); //30 a /= 6; //相当于a=(int)(a/6) System.out.println(a); //5 //常见面试题: short s = 5; //s = s+10; //编译错误,需强转,改为: s=(short)(s+10); s += 10; //相当于: s=(short)(s+10);
关系运算符
> , < , >= , <= , == (java等于符号),!=
//关系运算符返回的结果: 布尔值 true
false
int a = 10;
int b = 20;
int c = 22;
System.out.println(a > b);//false
System.out.println(a < b);//true
System.out.println(a == b);//false
System.out.println(a != b);//true
System.out.println(a++>10); //false-----a自增1变为11
System.out.println(a++>10); //true------a自增1变为 12
逻辑运算符
&& , || , !
1)&&:逻辑与(并且),两边都为真则为真,见false则false
---当第1个条件为false时,则发生短路(后面的不执行了)
||:逻辑或(或者),有真则真,见true则true
---当第1个条件为true时,则发生短路(后面的不执行了)
!:逻辑非(取反),非真则假,非假则真
2)逻辑运算是建立在关系运算的基础之上的
逻辑运算的结果也是boolean型
//与(and
两个都要)
或(or
我或者你)
非(for
取反 )
boolean a = true;
boolean b = false;
System.out.println("a && b:" + (a && b));//逻辑与运算
两个变量都为真
结果才为true
System.out.println("a || b:" + (a || b));//逻辑或运算
两个变量只要有一个为真
则结果为true
System.out.println("!(a && b):" + !(a && b));//逻辑非运算 如果是真 结果为假 ,如果是假则结果为真
//短路运算
int c = 5;
boolean d = (c < 4) && (c++ < 4);//
(c < 4)以及为假了 所以后面(c++ < 4) 中的c++不运行
所以c的结果还是5
System.out.println(d);//false
System.out.println(c);//5
位运算符
& , | , ^ , ~ , >> , << , >>>
/*
A = 0011 1100
B = 0000 1101
-----------------------------
A&B (A与B 上下两个数进行比较
上下都为1则为1 否则为0 )
A&B =0000 1100
A|B(A或B 上下两个数进行比较
如果对应位0则为0 否则为1)
A|B =0011 1101
A^B(A异或B
上下两个数进行比较
如果对应位相同则为0
否则为1 )
A^B =0011 0001
~B(非A即B
上下两个数进行比较 取对应位相反的数 )
~B =1111 0010
面试题:
2*8 = 16
2*2*2*2
<<
*2
>>
/2
0000 0000
0
0000 0001
1
0000 0010
2
0000 0011
3
0000 0100
4
0000 1000
8
0001 0000
16
*/
System.out.println(2 << 3);//2*2*2*2 16
条件运算符
**? : **
1)语法:
boolean?数1:数2
2)执行过程:
整个表达式是有值的,它的值要么是?号后的数1,要么是:号后的数2
计算boolean的值:
若为true,则整个表达式的结果为?号后的数1
若为false,则整个表达式的结果为:号后的数2
int score = 80;
String test = score < 60 ? "不及格" : "及格";
System.out.println(test);//及格
int score = 50;
String test1 = score < 60 ? "不及格" : "及格";
System.out.println(test1);//不及格
字符串连接
+
+:
1.1)若两边都是数字,则做加法运算
1.2)若旁边出现了字符串,则做字符串连接
注意:任何类型的数据与字符串相连,结果都是字符串类型----同化作用
int a = 10;
int b = 20;
a += b; //a=a+b
a -= b;//a=a-b
//字符串连接符
+
,String
/*
面试题
*/
System.out.println("" + a + b);//1020
字符串在前面实现字符串拼接
System.out.println(a + b + "");//30
字符串在后面 前面依旧进行运算
最后
以上就是踏实煎蛋为你收集整理的运算符基础的全部内容,希望文章能够帮你解决运算符基础所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复