java基础知识回顾3(可用于Java基础速通)考前,面试前均可用!
目录
一、基本算数运算符
二、自增自减运算符
三、赋值运算符
四、关系运算符
五、逻辑运算符
六、三元运算符
七、 运算符的优先级
八、小案例:在程序中接收用户通过键盘输入的数据
声明:本文章根据黑马程序员b站教学视频做的笔记,可对应课程听,本文章所对应的课程链接如下:09、Java语法:算术运算符、+符号做连接符_哔哩哔哩_bilibili
本章主讲运算符。
运算符的定义:对变量,字面量进行运算的符号
一、基本算数运算符
对上表的解释:
①+,-,*,/,%分别是加减乘除,取余
②/号注意,两个整数做除法,其结果一定是整数,因为最高类型是整数,要是得到小数在式子里给被除数乘以1.0(就是小数的位数)
③+除了做基本的数学运算 还能做连接符,在与字符串做+运算的时候会被当成连接符,其结果还是字符串。
④我们在开发中主要需要识别这个加号是连接符还是能运算的。
识别技巧(能算则算,不能算就在一起)
例如,
int a=5
sout.(a+'a'+"hhh");
输出;102hhh
因为变量a等于5,字符a在计算机存储为97,所以算则算,5+102=107,后面字符串不能算,直接连在一块就行。
二、自增自减运算符
注:++ 、-- 只能操作变量,不能操作字面量的。 (字面量就是具体的数)
代码中的问题:
自增自减运算符放在变量前后有区别吗?
(1)如果单独使用放前后没区别,例如i++;和++i;没有区别,就是单独一个语句没有区别。单独使用例子:i++;
(2)非单独使用,在变量前,先进行变量自增自减,在使用变量(加号在前,先加在用)
非单独使用,在变量后,先使用变量,在进行变量自增/自减(加号在后,先用再加)例子:
int a = 10;
int rs = ++a; (先加再用)int b = 10;
int rs = b++; (先用再加)
三、赋值运算符
赋值运算符包括:
- 基本的赋值运算符:= (从右边往左)
int a = 10; // 先看“=”右边,把数据10赋值给左边的变量a存储。
- 扩展的赋值运算符:+=、-=、*=、/=、%=
扩展的赋值运算符的特点隐含了强制类型转换。强转能规避一些bug,详解:例如
int a=10;
int b=20;
a+=b;
System.out.println(a);//30
以上第三行代码的解释:a=(int)a+b;就是a等于a+b,并把结果强转为int类型然后赋值给a.
其他扩展的赋值运算符与上面类似。(开发中用的最多的是+=和-=)
四、关系运算符
1.定义:判断数据是否满足条件,最终会返回一个判断的结果,这个结果是布尔类型的值:true或者false。
2.注:在java中判断是否相等一定是“== ” ,千万不要把 “== ”误写成 “=”。
五、逻辑运算符
1.定义:把多个条件放在一起运算,最终返回布尔类型的值:true、false。
2.在java中, “&” 、 “|”: 无论左边是 false还是 true,右边都要执行。
3.由于&&、运算效率高(出结果快)、在开发中用的更多。
4.实际开发中、常用的逻辑运算符还是:&& 、 || 、 !
package com.gezi.string;public class string {public static void main(String[] args) {//目标:掌握逻辑运算符的使用//需求:要求手机满足尺寸大于等于6.95,且内存必须大于等于8double size =6.8;int storage =16;//1. &前后的条件结果必须都是true,结果才是true.boolean rs= size >= 6.95 & storage >= 8;System.out.println(rs);//需求2,要求手机要么满足尺寸大于等于6.95,要么内存必须大于等于8//2.只要多个条件中有一个是true,结果就是trueboolean rs2=size >= 6.95 | storage >= 8;System.out.println(rs2);//3. !取反的意思System.out.println(!true); //falseSystem.out.println(!false); //trueSystem.out.println(!(2>1)); //false//4.^ 异或,前后条件的结果相同时返回false,不同时返回trueSystem.out.println(true^true); //falseSystem.out.println(false^false); //falseSystem.out.println(true^false); //trueSystem.out.println(false^true); //true//5. && 左边为false,右边不执行,结果直接是falseint i =10;int j=20;System.out.println(i > 100 && ++j>99);//false//双与逻辑符发现左边为false,所以右边不执行,所以j的值不变,即为20,输出表达式的值为falseSystem.out.println(j); //j=20//而 & 发现左边为false,仍然会执行右边,即j=21,表达式结果是一样的都为falseSystem.out.println(i > 100 & ++j>99); //falseSystem.out.println(j); //j=21//6. ||左边是true,右边不执行,结果直接是trueint m=10;int n=30;//||发现左边是true,右边不执行,输出表达式结果为true,n的值为30System.out.println(m > 3 || ++n > 40); //trueSystem.out.println(n);//而 | 发现左边为true,仍然会执行右边,输出表达式值是一样的,为true,但n的值变了,变成31System.out.println(m > 3 | ++n > 40); //trueSystem.out.println(n);}
}
六、三元运算符
1.格式:条件表达式 ? 值1 : 值2;
2.执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2。
3.小案例:需求,用三目运算符找出三个整数中最大的整数
package com.gezi.string;public class string {public static void main(String[] args) {//需求:找三个整数中的较大值int a=10;int b=45;int c=34;int temp=a>b ? a : b; //先找出两个数中谁较大,用临时变量temp来存储这个临时结果,//上面那行代码对应的含义是 判断a>b吗,若a大则执行第一个位置的表达式,即把a的值赋给temp,若a不大于b,则返回第二个位置的值,即把b的值赋给tempint max=temp >c ? temp :c; //把两个数中较大的跟c比较,谁大就是谁最大。//上面那行代码对应的含义是 判断temp>c吗,若temp大则执行第一个位置的表达式,即把temp的值赋给max,若temp不大于c,则返回第二个位置的值,即把c的值赋给maxSystem.out.println(max); //输出值45}
}
七、 运算符的优先级
定义:在表达式中,哪个运算符先执行后执行是要看优先级的,例如 “*、/” 的优先级高于”+、-”。优先级高的先执行,具体优先级看下表
记忆口诀:括号级别最高,逗号级别最低,单目 > 算术 > 位移 > 关系 > 逻辑 > 三目 > 赋值。
写代码的一个办法,就是想要谁先执行,就给谁套上括号。
八、小案例:在程序中接收用户通过键盘输入的数据
package com.gezi.string;import java.util.Scanner;public class string {public static void main(String[] args) {//学会java中接受用户在键盘上录入的数据————调用Scanner工具类//1、导包:一般不需要我们自己做,idea工具会自动帮助我们 导包的。// 2、抄写代码:得到一个键盘扫描器对象(东西)Scanner sc =new Scanner(System.in); // new一个Scanner对象// 3、开始 调用sc的功能,来接收用户键盘输入的数据。System.out.println("请您输入您的年龄:");int age =sc.nextInt(); // 执行到这儿,会开始等待用户输入一个整数,直到用户按了回车键,才会拿到数据。System.out.println("请您输入您的名字:");String name =sc.next();// 执行到这儿,会开始等待用户输入一个字符串,直到用户按了回车键,才会拿到数据。System.out.println(name + "欢迎您进入系统~~");}
}
代码里面用到的相关知识:
①API (Application Programming Interface:应用程序编程接口)
- Java写好的程序,咱们程序员可以直接拿来调用。
- Java为自己写好的程序提供了相应的 程序使用说明书(API文档)。
- 下载API文档:https://www.oracle.com/java/technologies/javase-jdk17-doc-downloads.html
- API与JDK的包含关系如下图:
②Scanner工具类调用步骤
1、导包:import java.util.Scanner;(idea中自动导)
2、抄代码得到扫描器对象: Scanner sc = new Scanner(System.in)
3、抄代码等待接收用户输入的数据:
int age = sc.nextInt() //接整型变量
String name = sc.next() //接字符串变量
day02天后半个笔记就到这里啦!喜欢的友友点个收藏吧 ~
持续更新中~