Java运算符以及应用重点

Java运算符

运算符

  • 算术运算符:+、-、*、/、%、++、–
  • 赋值运算符:=(+=、-=、*=、/=、)
  • 逻辑运算符:&&、||、!
  • 按位运算符:|、&、~、>>、<<、>>>
  • 关系运算符:>、>=、<、<=、!=、==


算术运算符

这里主要讲%、++,–和++相同,所以只讲++就行了,其他的加减乘除不予以讲解。

%:取余符号,即算出的结果为进行除法之后所取的余数

public static void main(String[] args) {
    int a=5,b=3;
    System.out.println("a%b="+a%b);
}

运行结果:




++:自增操作,对该数值进行+1,但注意用法很多,并且有很多坑,新人着重注意

public static void main(String[] args) {
    int a=5;
    a++;
    System.out.println("a++ = "+a);
    int b=1;
    ++b;
    System.out.println("++b = "+b);
}

运行结果




当++a和a++单独使用时,他们的运行结果是没有区别的。他们的区别在于在与其他语句组合使用时,a++是先执行完语句,然后在给a进行++操作,++a是先给a++在执行语句,具体区别看代码。

public static void main(String[] args) {
    int a=5;
    int b=a++;
    System.out.println("b="+b);
    System.out.println("a="+a);
    System.out.println();
    a=5;
    b=++a;
    System.out.println("b="+b);
    System.out.println("a="+a);
}

运行结果:

;
显而易见,第一组进行b=a++操作时,先进行了b=a;然后进行了a++;,第二组则是先进行a++,在进行b=a;




赋值运算符

这里主要讲复合赋值运算符
=:将后边的值赋给前边的变量,没什么可讲,注意别写成“==”,注意它们的区别


+=:这是一个符合赋值运算符,其实也很简单,举个例子,a+=b就是a=a+b;

public static void main(String[] args) {
    int a=5;
    int b=5;
    a=a+5;
    b+=5;
    System.out.println("a="+a);
    System.out.println("b="+b);
}

这个只是一个简写的方式,其他的也一样,记住会用就行了


考点:类型转换问题

short s=5;
s=s+1;
s+=1;

这段代码是不能运行的,s=s+1;这句代码是明显报错的,1默认是个int型,而s是个short型,s+1默认提升为int型,所有s=int型,是明显不对的,必须进行强转。但是同样的第二句话s+=1是对的,它在逻辑上等于s=s+1;但是它后边的1默认为short型,所以不存在类型转换问题。这个是重点,如果不懂的话,可以取查查类型转换相关知识去看。




逻辑运算符

逻辑运算符其实和高中学的与或非是一个意思,只是在代码中表示为&&,||,!
&&:逻辑与
||:逻辑或
!:逻辑非
这三个运算主要是用于布尔类型,例如:true&&true=true,false||true=true等等。逻辑运算要会,在所有的理科课程中几乎都会涉及到这三个运算。

注意:一定要区分&&和&的区别,在最后我会将逻辑与和按位与的区别进行讲解




关系运算符

我们先看简单的,按位运算放到最后,关系运算符一般返回都为布尔类型,不是true就是false,例如:boolean a=(5>2),那么a为true;括号可有可无,主要为了让你们把式子看的更清晰。
关系运算符,没啥讲的,但是要注意"==“和”="的区别,!=代表不等于,其他的我就不说了。



按位运算符

按位运算符主要用于二进制,平时不常用,见了要知道什么意思,其次,对于他们的功能要有所了解,当你要刷算法时很可能会用得到。

&:按位与,将两个二进制码按位进行与运算,1&1=1,1&0=0,0&0=0,其实1相当于true,0相当于false,和逻辑与有相似之处
|:按位或
~:非运算,将一个二进制字节码按位进行反转,1变0,0变1,通常不用,除非你知道底层逻辑
<<:左移,相当于除2,如果想了解怎么实现的可以去网上查
>>:右移,相当于乘2
>>>:无符号右移,不建议使用,不了解底层怎么实现建议不要用,你们可以当作没学过

重点:

  1. 左移右移的用法,2>>1=1,这是将2变为二进制然后向右移动了一位,2<<1=4,这是2左移了1位,当然也可以左移两位,看题而论
  2. 没有无符号左移



按位与和逻辑与的关系
1.按位与可以用作逻辑运算,即true&true=true,我想你们应该会有这样的疑问:那为什么不用&,反而开发出&&呢,这不是多次一举?
其实不然,用代码举个例子吧

public static void main(String[] args) {
    boolean a=5>2 | 3<1;
    boolean b=5>2 || 3<1;
    System.out.println("a="+a+"   b="+b);
}

运行结果:


从结果上看,好像没什么区别,但是他们在运行时效率上大大不同,根据运行顺序,a=5>2 | 3<1;应该先判断5>2,为真,那么这是个或运算,后边的不管是什么,这个a都一定为true,所以按理说后边的可以不用看了,但是按位或"|“不行,它必须把3<1也判断了,然后true | false=true;然后将结果给a.

但是逻辑或”||"不同,它判定第一个为true,然后发现是或运算,直接给b=true;后边是啥都不用管。

这就是他们的根本区别,所以逻辑判断时,通常不会用按位与或非


2.逻辑与或不能用于按位运算,但按位与或可以用于逻辑运算,注意非运算不能用于互相通用,"“只能用于逻辑运算,”~"也只能用于按位运算

上边的重点要牢记,孰能生巧,多练多写自然就记住了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值