写在最前边:
研究生一枚,为后端实习和未来工作打基础。无意间发现韩顺平老师的课程,细心细致,讲课和吴恩达老师一样,都是保姆式讲解,各种基础知识都会补充,爱了。
韩顺平老师课程地址:https://www.bilibili.com/video/BV1fh411y7R8?spm_id_from=333.999.0.0
阅读提醒:本笔试适合有编程语言基础的伙伴阅读,因为本兔兔是本专业的,有c、c++、python 、sql基础,笔记中特别的基础的内容就没有记录。完全零基础的小伙伴建议跟着韩老师的课程自己记录。
Java 基础
第二阶段 java编程(续)
介绍一下老师的解决问题的过程
1.明确需求
2.思路分析
3.走代码
第四章 运算符
一、 运算符介绍
-
算术运算符
操作对象:数值型变量。
应用范围:最广
重点:
(1)除法 “/”: 整数 / 整数 = 只保留整数部分。例如10 / 4 = 2
(2)取模(取余)“%” :记住一个公式 a % b = a -(int)
a / b * b
所以在java中%两边的操作数中有负数、小数也可以。但是不要忘记小数运算的结果是近似值哦
(3)++ / – 的使用(以++为例)–>作为独立语句使用时,前++后++都等价于i=i+1。
–>作为表达式使用时要特别注意:
int x = 5; if(x++ == 5): //这里x++在比较式的前边,那还是遵循前++后++的原则。这里是后++,那么x与5先判等,再x = x + 1 System.out.println("true")
经典面试题:
-
赋值运算符
基本赋值运算符: =
复合赋值运算符: += , -= , /= , *= %=
举例说明:a += b ; 即 a = a+b;
特点:
1.运算顺序从右至左。即先算赋值运算符右边的式子,再赋值给左边的变量。
2、赋值运算符左边只能是变量,右边可以是变量、表达式、常量值
3、复合赋值运算符会将结果进行类型转换为左边变量的类型,举例说明:
byte b = 1;
>b = b + 1;//报错,因为1默认类型是int,int精度>byte精度
b += 1 ; //正确。等价于 b = (byte)(b + 1);
b++; //正确,和复合赋值运算符有相同的效果 -
关系运算符【比较运算符】
关系运算符的结果都是boolean型。
应用范围:常用在if条件中或者循环条件中
+ 逻辑运算符 >运算规则
说明:(1)逻辑 & 和短路 && 的结果看看起来一致,那么区别在哪里?
短路&&
当第一个条件为false
时,就不会再判断第二个条件,效率高
逻辑&
,两个条件必须都要判断
开发时使用的基本是短路&&
说明:(2)逻辑 | 和短路 || 的结果看看起来一致,那么区别在哪里?
短路||
当第一个条件为true
时,就不会再判断第二个条件,效率高
逻辑|
,两个条件必须都要判断
开发时使用的基本是短路||练习题
解析:赋值式子的返回值在关系运算符的两边,就是true。如本例子中的y=true、x=flase。一定要记得哦。 -
三元运算符
条件表达式?表达式1:表达式2
运算规则:
1.条件表达式为true,运算结果为表达式1;
2.条件表达式为false,运算结果为表达式2
表达式1和表达式2的结果精度要小于等于等号左边的接收变量,否则要使用强制类型转换。因为这里没有不像复合赋值运算符一样可以自动强制转换哦!以下举例:
-
位运算符【二进制,】
&
按位与:每一位置的两个操作数,全1则1,否则为0
|
按位或:每一位置的两个操作数,全0则0,否则为1
^
按位异或:每一位置的两个操作数,不同为1,相同为0
~
按位取反:0->1 , 1->0以上四种位运算,用二进制补码运算,但是运算结果要使用补码转为对应原码计算出真实值(十进制)
>>
算术右移:低位(最右边)溢出,符号位补充高位(最左边)x >> n 相当于 x / 2的n次方
<<
算数左移:高位(最左边)溢出,用 0 补充低位(最右边)x << n 相当于 x * 2的n次方
>>>
逻辑右移(无符号右移),低位溢出,高位补0 -
运算符优先级
二、 标识符介绍
- 概念
- 标识符命名规则(
必须遵守
)
- 标识符命名规范(
这样写更加专业
)
三、四种进制(与位运算有关)
-
不同进制在java语言中的表示方式
二进制:以0b / 0B开头,位数必须是
十进制
八进制:以== 0 开头
十六进制:以0x / 0X==开头,10-15用a-f或者A-F表示都可以
-
进制转换(记住规则的同时也要记得,电脑自带的科学计算器啊哈哈哈)
举例:
1、二、八、十六进制 --> 十进制(以16进制为例)
2、十进制 --> 二、八、十六进制
将该十进制数不断除以二 / 八 / 十六,直到商为0为止。然就将每步得到的余数从下到上按从左至右的顺序书写。
3、二进制 --> 八、十六进制
4、八、十六进制 --> 二进制
四、原码、反码、补码(与第四节的位运算有关)
练习题
注意:容易犯错的地方
1、 a + 1;//1 的默认类型是int
a + 1.0 //1.0 的默认类型是double
所以运算之后要结合a和1/1.0的默认类型,看看运算结果到底是什么类型,改用什么类型存储合适!!!
2、将字符串转换为基本类型,要调用包!!!
五、键盘输入
- 介绍:使用Scanner类创建扫描器(对象)即可接收键盘输入。
- 步骤:
- 导入Scanner所在的包 java.util.Scanner
- 创建该类对象(声明变量)
- 调用里边的对应的功能 接收对应数据类型的键盘输入
import java.util.Scanner
...
Scanner myScanner = new Scanner(System.in);
String s = myScanner.next();//接收字符串
char c = myScanner.next.().charAt(0);//接收一个字符
int a = myScanenr.nextInt();
...