前言

上一篇我们讲了运算符前三个:算术运算符,赋值运算符,比较运算符,这一篇呢,我们讲剩下的三个运算符,代码量还会比之前多一些,但是我的每一步还是会有代码演示,兄弟们完全放心,跟着我走即可,就是为了兄弟们学习起来轻松,还是那句话,兄弟们动起手来,我们一起在java世界里历险,废话不多说,咱们往下看!!!

java之运算符升级精选_基础

一.介绍

       在java中我们要进行大量的运算,java中也为我们提供了大量的运算符,我们常用的运算符有那些呢,下面我们来一一的给大家介绍一下。

运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。运算符大致可以分为5种类型:算术运算符、条件运算符、关系运算符、赋值运算符和逻辑运算符。

我们的2-4小节,在上一文章中有详细介绍,我详细拆分了每一个细节,为的就是每个细节都给大家呈现出来!

二.知识点介绍

1、运算符概念

2、算术运算符

3、赋值运算符

4、比较运算符

5、逻辑运算符

6、三元运算符

7、运算符优先级

8、Debug详解

三.知识详解

1、运算符概念

     运算符是用来计算数据的指令。数据可以是常量,也可以是变量。被运算符操作的数成为操作数。

例如:

int x = 3;
int y = 4;
int z = x + y;//磊哥java历险记 @51博客

2、逻辑运算符

用于计算两个布尔值经过指定逻辑后的运算结果,结果同样是一个布尔值

运算符

运算规则

范例

结果

&

与(并且)

false&true

False

|

false|true

True

^

异或

true^flase

True

!

非(取反)

!true

Flase

&&

短路与

false&&true

False

||

短路或

true ||true

True

 作用:逻辑运算符用于连接布尔型表达式,在Java中不可以写成33 && x<6 。

 基本使用: &(与),|(或),^(异或),!(非)

  • 与:& 有false则false
  • 或:| 有true则true
  • 异或:^ 相同则false,不同则true
  • 非:! true则false,false则true

代码演示:

package com.Test;
/*
逻辑运算符的返回值和操作数都是boolean类型。
&& 中两个操作数都为 true,结果才为 true,否则为 false。
其中 & 的操作数为 boolean 类型时也可以表示逻辑运算。

与:& 有false则false
或:| 有true则true
异或:^ 相同则false,不同则true
非:! true则false,false则true

*/

public class Main {
private final static String name = "磊哥java历险记 @51博客";
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
// false & false
System.out.println((a > b) & (a > c));
// true & false
System.out.println((a < b) & (a > c));
// false & true
System.out.println((a > b) & (a < c));
// true & true
System.out.println((a < b) & (a < c));
System.out.println("==========="+name +"===========");
// false | false
System.out.println((a > b) | (a > c));
// true | false
System.out.println((a < b) | (a > c));
// false | true
System.out.println((a > b) | (a < c));
// true | true
System.out.println((a < b) | (a < c));
System.out.println("---------------");
// false ^ false
System.out.println((a > b) ^ (a > c));
// true ^ false
System.out.println((a < b) ^ (a > c));
// false ^ true
System.out.println((a > b) ^ (a < c));
// true ^ true
System.out.println((a < b) ^ (a < c));
System.out.println("==========="+name +"===========");
System.out.println((a > b)); // false
System.out.println(!(a > b)); // !false
System.out.println(!!(a > b)); // !!false
}
}

java之运算符升级精选_运算符_02

java之运算符升级精选_java_03

&&和&的区别

       &是叫按位与,即在运算符号两边的表达式的结果都为“正确”时,那结果就是正确的;在运算符号两边的表达式的结果只要有一个为“错误”那结果就是错误的。

&&是叫短路与,也叫逻辑与,相当于“和”的意思。

单&时:左边无论真假,右边都进行运算;

双&时:如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。

代码演示:

package com.Test;


/*
磊哥java历险记 @51博客
“&”时:左边无论真假,右边都进行运算;
“&&”时:如果左边为真,右边参与运算;如果左边为假,那么右边不参与运算。
&& 会出现短路,通过第一个表达判断整个表达式的结果,后面的表达式将不会运算。
&不会出现短路,将整个表达式都进行运算,&既可操作 boolean 数据还可以操作数

*/
public class Main {
private final static String name = "磊哥java历险记 @51博客";
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
System.out.println((a > b) && (a > c));// false && false
System.out.println((a < b) && (a > c)); // true && false
System.out.println((a > b) && (a < c)); // false && true
System.out.println((a < b) && (a < c)); // true && true
System.out.println("==========="+name +"===========");
System.out.println((a > b) || (a > c));// false || false
System.out.println((a < b) || (a > c)); // true || false
System.out.println((a > b) || (a < c)); // false || true
System.out.println((a < b) || (a < c)); // true || true
System.out.println("---------------");
int x = 3;
int y = 4;
System.out.println((x++ > 4) & (y++ > 5)); // false & false
System.out.println((x++ > 4) && (y++ > 5)); // false && false
System.out.println("x:" + x);
System.out.println("y:" + y);
}
}

java之运算符升级精选_java_04

3、 三元运算符

     接下来我们要学习的三元运算符与之前的运算符不同。之前学习的均为一元或者二元运算符。元即参与运算的数据。格式:(条件表达式)?表达式1:表达式2;

     表达式:通俗的说,即通过使用运算符将操作数联系起来的式子,例如:3+2,使用算数运算符将操作数联系起来,这种情况,我们称为算数表达式。

     3>2,使用比较运算符(也称为条件运算符)将操作数联系起来,这种情况,我们称为条件表达式。其他表达式,感兴趣的兄弟们下去可以再扩充一下,我就不再一一举例。

java之运算符升级精选_运算符_05

三元运算符运算规则:

     先判断条件表达式的值,若为true,运算结果为表达式1;若为false,运算结果为表达式2。

注意:

      三元运算符,最终一定会产生一个结果值,这个值必须被使用起来。要么被运算符使用,要么被打印     

格式:

 (条件表达式) ? 表达式1 : 表达式2;     

执行流程:
  • 首先判断条件表达式是否成立
  • true:表达式1作为3元运算符的结果
  • false:表达式2作为3元运算符的结果
代码演示:

package com.Test;

/*
磊哥java历险记 @51博客
三元运算符:求两个数的最大值,判断两个数是否相等

格式:
(条件表达式) ? 表达式1 : 表达式2;

执行流程:
首先判断条件表达式是否成立
true:表达式1作为3元运算符的结果
false:表达式2作为3元运算符的结果

注意:
三元运算符,最终一定会产生一个结果值,这个值必须被使用起来。
要么被运算符使用,要么被打印

*/
public class Main{
private final static String name = "磊哥java历险记 @51博客";
public static void main(String[] args){
int a = 10;
int b = 20;
int max = (a > b) ? 10 : 20;

System.out.println("max = " + max);
System.out.println("==========="+name +"===========");
int c = 15;
int d = 10;
//System.out.println((c != d) ? "相等" : "不相等");
String s = (c != d) ? "相等" : "不相等";
System.out.println("s = " + s);

//(c != d) ? "相等" : "不相等";//错误: 不是语句

}
}

java之运算符升级精选_运算符_06

4、运算符优先级

4.1、优先级概念

运算符运算的先后顺序,优先级越高(数字越小),计算顺序越靠前。

4.2、优先级规则

优先级相同的情况下,按照从左到右的顺序依次运算

优先级

描述

运算符

1

括号

()、[]

2

正负号

+、-

3

自增自减,非

++、--、!

4

乘除,取余

*、/、%

5

加减

+、-

6

移位运算

<<、>>、>>>

7

大小关系

>、>=、<、<=

8

相等关系

==、!=

9

按位与

&

10

按位异或

^

11

按位或

|

12

逻辑与

&&

13

逻辑或

||

14

条件运算

?:

15

赋值运算

=、+=、-=、*=、/=、%=

16

位赋值运算

&=、|=、<<=、>>=、>>>=

四.debug测试

测试代码的运行和输出结果,是每位开发工程师的必须要会的技能,再牛的大神都会用到debug测试,debug测试不仅能帮助我们熟悉程序运行的过程,更是能帮助我们加深对程序的理解,我们能一步一步更加直观的看到数值之间的传递逻辑。

再加上我们后期的代码会越来越多,不像现在基础期间,我们能一眼看出代码问题的所在,所以debug技能我们必须掌握,为了后面我们能更加熟练掌握程序的运行和排错,今天就和大家聊聊debug的教程。

我们以IDEA开发工具为例,给大家实际演示,其他开发工具也是大同小异,不必担心哈 。

按钮介绍:

我们之前说过正常运行点击“绿色的倒三角”即可,它旁边的小飞虫样子的按钮就是debug模式的启动按钮:

java之运算符升级精选_基础_07

debug启动前,需要我们先设置自己想要的拦截点,与代码平齐的左边框,点击即可出现红点,红点就是标记的断点(拦截点)

java之运算符升级精选_概念_08

提示:在断点调试过程中,是以对象的运行类型来执行的,程序是运行状态.

我们启动debug运行:

java之运算符升级精选_概念_09

1:debug运行状态,表示当前debug模式,可以随时添加断点进行测试

2:   程序运行状态

3:debug控制台,可以显示出来变量值区域

4:从左到右依次是:

Show Execution Point (Alt + F10):你的鼠标光标在其它行,点击这个按钮直接就能跳转到当前在执行的代码行。

Step Over (F8):步过,按照代码一行一行地执行,这一行上如果有方法调用那不会进入方法体。

Step Into (F7):步入,如果当前代码有调用方法,可以进入方法体,一般用来进入自定义方法内。

Force Step Into (Alt + Shift + F7):强制步入,能进入任何方法体,可查看底层源码的方法。

Step Out (Shift + F8):步出,从步入的方法体直接出来,此时方法执行完毕,但是没有完成赋值。

Drop Frame (默认无):回退断点。

Run to Cursor (Alt + F9):运行到鼠标光标处,将光标定位到你需要查看的那一行代码,然后点击按钮,代码会运行至光标所在的代码,而且不需要打断点。

Evaluate Expression (Alt + F8):计算表达式。

5:我们代码执行时变量的变化就在这里能看到,变量,对象都可以。

6:从上往下依次是:

Rerun '***':重新运行程序,关闭掉服务后重新启动程序。

Resume Program (F9):恢复程序,只执行,打断点的代码,没有打断点的地方就直接运行跳过了。

Pause Program:暂停程序,启用Debug。。

Stop '***' (Ctrl + F2):连续按两下,关闭程序服务,停止运行。

View Breakpoints (Ctrl + Shift + F8):查看所有断点。

Mute Breakpoints:灰断点,点击后,所有断点变为灰色,断点失效,按F9则可以直接运行完程序。再次点击,断点变为红色,有效。

debug运行效果:

java之运算符升级精选_概念_10

结语:

      运算符咱们就聊到这里,分为两篇给大家详细说明,我把每一步的代码和演示都贴在了文章里,兄弟们可以按照我的演示代码自己动手敲一遍,感受一下这个过程,我也从这个阶段走过来过,完全能体会兄弟们的不容易,所以我宁愿麻烦一些也要让每一位初学者最起码看的明白,这样也不枉我费这么大功夫,兄弟们,还是那句话,动起手来切勿复制粘贴,让学习变得值得!!!

java之运算符升级精选_概念_11