当前位置: 首页 > news >正文

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.定义:把多个条件放在一起运算,最终返回布尔类型的值:truefalse

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天后半个笔记就到这里啦!喜欢的友友点个收藏吧 ~

持续更新中~

相关文章:

  • pinia状态管理使用
  • 使用CRTP实现单例
  • 22、web场景-web开发简介
  • 弦序参量(SOP)
  • 详解Innodb一次更新事物的执行过程
  • 【概率论基本概念02】最大似然性
  • 【MySQL成神之路】MySQL函数总结
  • 【C语言干货】free细节
  • RocketMQ 索引文件(IndexFile)详解:结构、原理与源码剖析
  • 用 Python 实现了哪些办公自动化
  • 力扣第157场双周赛
  • 湖北理元理律师事务所债务优化方案:让还款与生活平衡的艺术
  • 基于PyTorch的残差网络图像分类实现指南
  • SGMD辛几何模态分解
  • 【MATLAB代码】主动声纳多路径目标测距与定位,测距使用互相关,频率、采样率可调、声速可调,定位使用三边法|订阅专栏后可直接查看源代码
  • 第一章 半导体基础知识
  • 华为OD机试真题——出租车计费/靠谱的车 (2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 网络安全--PHP第二天
  • 华为OD机试真题——启动多任务排序(2025B卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • Qt for Android 安卓低功耗蓝牙(BLE)开发环境搭建
  • 做网站用什么软件好/成都网站建设公司排名
  • 网站收录查询接口/seo学徒是做什么
  • 长春网长春网站建设站建设/上海关键词优化报价
  • 郑州同济医院口碑怎样/郑州优化公司有哪些
  • 四川成都进出口贸易公司/北京seo地址
  • 网站内套网站代码/企业网站制作方案