JAVA-运算符

一、JAVA的运算符:

1、按照操作数的数目可以分为三类:一元运算符、二元运算符、三元运算符。如下表:

按操作数的数目分类
分类运算符
一元(单目)运算符+、-、++、--、!、~、
二元(双目)运算符%、+、-、*、/、<、<=、>、>=、!=、&&、&、||、|、^、>>、>>>、<<、=、+=、-=、*=、/=、&=、|=、%=、<<=、>>=、>>>=
三目运算符?:

2、按运算功能进行划分:可以分为七类:如下表:

按运算功能划分
分类运算符
算术运算符+、-、*、/、++、--、%
关系运算符<、<=、>、>=、==、!=
逻辑运算符&&、&、||、|、!、^
位运算符&、|、~、^、>>、>>>、<<
赋值运算符=、+=、-=、*=、/=、&=、|=、%=、 <<=、>>=、>>>=
条件运算符?:
其他运算符new、instanceof、()

3、实践出真知

a、对于简单的不再举例,接下来直接举例“%”和“/”的区别。上代码:
        int n=10;
        System.out.println(n%3);   //1
        System.out.println(n/3);   //3

由举例可以得出:两个都需要进行除法运算,其中“%”是除法以后取余运算,而“/”是取整运算。

之前总算会混,所以就建立了一个口诀:百分百是余数啊!(希望对你有帮助)

b、关于i++和++i

i++是先进行运算以后,i的值再增加,如果是输出语句,那么输出i++的值和上一次运算的值相同。

++i则是先对i进行加一后,再进行运算。话不多说:上代码:

        int i=1;
        int n=2;
        System.out.println(i++); //1
        System.out.println(++n); //3

其实他们的区别就在于谁先进行运算。

c、对于关系运算符,结果为boolean的值。直接举例:

        char c='c';
        System.out.println(c>100); //false

(char类型与int类型的比较的时候,自动转换为int类型的,c的ASCII码表的数据为99<100,所以结果为false)

d、逻辑运算符

首先看表;

逻辑运算符
&(逻辑与)查看两边的对错,都为true则为true
&&(短路与)先查看左边的对错,如果一边为错,则不在查看另一边
|(逻辑或)查两边都中够一边为true则为true
||(短路或)查看左边,若为true,则不再查看左边,直接为true
!(非)取反运算
^(异或)同位取0,不同取1

首先分析关于&、|和&&、||的区别:在于是否进行二次运算,前者都需要进行判断,而后者可能不需要进行。上代码举例:

        int a1=10;
        int b1=1;
        System.out.println(a1>20&(b1++)>3);   //false
        System.out.println(b1);              //2
        int a2=10;
        int b2=1;
        System.out.println(a2>20&&(b2++)>3); //false
        System.out.println(b2);              //1

通过举例发现,当第一个条件为false时,&仍然运行右边的运算,故b进行自加运算后值为2。

而&&,在第一个条件为false时,就不在进行第二条件的运算,直接输出false,故右边的b2的自加运算实则没有运行过,故值仍然为1。

e、异或运算:

按二进制,同则取0,不同则取1。满足交换律。

先看一个例题:

在不使用第三个变量的情况下,把两个数字的值进行互换。上代码;

        int a=1314;
        int b=520;
        a=a^b;
        b=a^b;
        a=a^b;
        System.out.println(a); //520
        System.out.println(b); //1314

具体的解析,会在下一篇文章解释。(也可以自己探索。学习快乐!)

f、关于>>,>>>,<<

请期待下一篇文章。(待我深入研究,不可误人子弟)。

g、条件运算符:?:

格式:逻辑表达式1 表达式2 表达式3

如果表达式1成立,则执行表达式2,如果不成立,则执行表达式3。直接上举例代码。

        char c='a';
        System.out.println(c==99?"我爱中国!":"我爱我的祖国!"); //我爱我的祖国!

由于c=‘a’,,所以在和99进行比较的时候,自动进行类型转换后,a的ASCII的值为:97!=99,所以不成立,故执行“我爱我的祖国!”。

h、instanceof运算符:

判断一个对象是否为某个类的实例。上代码;

        int[]a=new int[3];
        boolean b=a instanceof Object;
        System.out.println(b);  //true

Object是所有类的超类(父类),所以结果为true,Java里的世界里,万物皆对象

二、运算符的优先级:

自增自减运算符、算术运算符、位运算符、关系运算符、逻辑运算符、赋值运算符的优先级依次递减。具体使用的时候可以使用括号进行改变顺序,故此处只作了解:如下表

运算符的优先级
序号 运算符
1.、[]、()
2++、--、~、!
3*、/、%
4+、-
5<<、>>、>>>
6<、>、<=、>=
7==、!==
8&
9^
10|
11&&
12||
13?:
14=、*=、/=、%=、+=、==、<<=、>>=、>>>=、&=、^=、|=

本次的就到这里咯,如果大家发现错误,欢迎大家指正,共勉!!!

谢谢查看!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值