1.4、java的基本运算操作(重点)
在java中支持支持四则运算:+、-、*、/、%
在java中“=”用于进行赋值操作。
而且在java中存在自增和自减的操作。
1.4.1、四则运算
public class TestDemo18 {
public static void main(String args[]){
int x = 10 ;
int y = 20 ;
System.out.println(x + " + " + y + " = " + (x + y)) ;
System.out.println(x + " - " + y + " = " + (x - y)) ;
System.out.println(x + " * " + y + " = " + (x * y)) ;
System.out.println(x + " / " + y + " = " + (x / y)) ;
System.out.println(x + " % " + y + " = " + (x % y)) ;
}
}
1.4.2、简便运算
简便运算指的是:++、- -,主要的目的是当时为了解决运算的空间而使用的。
public class TestDemo19 {
public static void main(String args[]){
int x = 10 ;
System.out.println(x++) ;
System.out.println(x) ;
}
}
++放在后面表示先进行运算,后进行自增的操作。
public class TestDemo19 {
public static void main(String args[]){
int x = 10 ;
System.out.println(++x) ;
System.out.println(x) ;
}
}
1.4.3、关系运算
关系运算:<=、>=、!=、>、<,关系运算符返回的操作结果是boolean类型的数据。
public class TestDemo20 {
public static void main(String args[]){
int x = 10 ;
int y = 20 ;
System.out.println(x>y) ;
}
}
1.4.4、逻辑运算
在java中可以将多个关系运算符进行统一的操作,使用逻辑运算:
与:&、&&
- &:表示的是正常的与,所有的条件都必须判断
- &&:表示的是短路与,如果第一个条件为假,则后续条件将不再判断
或:|、||
- |:表示的是正常的或,所有的条件都必须判断
- ||:表示的是短路或,如果第一个条件为真,则后续条件将不再判断
在进行讲解之前,先来看一下以下的操作代码:
public class TestDemo21 {
public static void main(String args[]){
System.out.println(10/0) ;
}
}
以上的程序一旦执行之后将出现错误,那么下面的所有程序将按照以上的格式进行操作。
public class TestDemo22 {
public static void main(String args[]){
if(1==2&10/0==0){
System.out.println("条件满足!") ;
}
}
}
此时,第一个条件不满足之后,程序继续判断第二个条件,所以程序造成了错误。那么如果现在使用了短路与呢?
public class TestDemo23 {
public static void main(String args[]){
if(1==2&&10/0==0){
System.out.println("条件满足!") ;
}
}
}
因为,现在第一个条件根本就不满足,所以,后面的内容是否满足并不会影响最后的结果,那么这就属于短路与的操作。
同理,短路或也是同样的操作,下面不使用短路或进行操作:
public class TestDemo24 {
public static void main(String args[]){
if(1==1|10/0==0){
System.out.println("条件满足!") ;
}
}
}
此时,属于非短路操作,所以即使第一个条件满足了,那么也要将全部的条件判断完整,如果现在使用了短路与呢?
public class TestDemo25 {
public static void main(String args[]){
if(1==1||10/0==0){
System.out.println("条件满足!") ;
}
}
}
第一个条件满足了,这样,不管后面的条件是否满足,其最终结果并不会受到任何的影响。
1.4.5、位运算(理解)
在普通的开发中,位运算的操作确实很少出现。位运算的操作符:|、&、>>、<<、>>>
或的操作:
public class TestDemo26 {
public static void main(String args[]){
int x = 3 ;
int y = 5 ;
System.out.println(x|y) ;
}
}
最终的操作结果是7,那么实际上这里就采用了位运算。
3 –> 00000000 00000000 00000000 00000011
5 –> 00000000 00000000 00000000 00000101
| –> 00000000 00000000 00000000 00000111
与操作:
public class TestDemo27 {
public static void main(String args[]){
int x = 3 ;
int y = 5 ;
System.out.println(x&y) ;
}
}
3 –> 00000000 00000000 00000000 00000011
5 –> 00000000 00000000 00000000 00000101
& –> 00000000 00000000 00000000 00000001
将以上的结果变为十进制的数据是:1
左移位操作:
public class TestDemo28 {
public static void main(String args[]){
int x = 3 ;
System.out.println(3<<2) ;
}
}
3 –> 0000000 00000000 00000000 00000011
<<2 –> 00000000 00000000 00000000 00001100
将以上的结果变为十进制的数据是:12
右位移操作:
public class TestDemo29 {
public static void main(String args[]){
int x = 3 ;
System.out.println(3>>2) ;
}
}
3 –> 00000000 00000000 00000000 00000011
2 –> 00000000 00000000 00000000 00000000
将以上的结果变为十进制的数据是:0
无符号右移位操作:
public class TestDemo30 {
public static void main(String args[]){
int x = 3 ;
System.out.println(3>>>2) ;
}
}
操作过程和之前是一样的。
如果现在操作的是一个负数的话,则必须注意的是,负数的操作=整数的反码+1
思考:
现在要求完成一个23的操作,问,如何操作性能最高?
最快的速度不是进行相乘的操作,而是进行移位的操作:
public class TestDemo31 {
public static void main(String args[]){
int x = 2 ;
System.out.println(2<<2) ;
}
}
2 –> 00000000 00000000 00000000 00000010
<<2 –> 00000000 00000000 00000000 00001000 –>8
转载请注明来源