# qd_dz_java20200311 **Repository Path**: climpeaker/qd_dz_java20200311 ## Basic Information - **Project Name**: qd_dz_java20200311 - **Description**: java基础课程 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2020-03-11 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # qd_dz_java20200311 #### 介绍 java基础课程 #### 课堂笔记 1. 运算符 ```aidl 1.1 运算符(操作符) 操作符也称为运算符,是一种特殊的符号,用来将一个或多个操作数连接成执行性语句(表达式),以实现特定功能。 运算符适用于连接操作数的符号;根据运算符连接的操作数的个数可以分为: 一元运算符:只有一个操作数; +(正) -(负) ! ~ ++ -- 二元运算符:连接两个操作数; +(加) -(减) * / % & | && || >、>=、<、<=、==、!= 三元运算符:条件表达式; ? : 运算符特性: 结合性;【从左往右、从右往左】 优先级;例如:先乘除后加减; 优先级可以通过 () 来改变; 1.2 算术运算 常用的运算有:+、-、*、/、%(求余数)【所有都是二元运算符】 注意: 运算符操作数之间的类型的默认转换; 运算结果是操作数中的最高类型; 1.3 位运算 课下作业: 什么是位运算?包括哪些运算?注意结合原码、反码、补码进行思考? 结论:计算机中所有的数都是以补码的形式存在的;【计算机中所有的负数都是以补码的形式存在的】【正数的原码、反码、补码是一样的】★★★★★ 常用的运算符: ~(按位取反)【一元运算符】、&(按位与)、|(按位或)、^(异或)、<<(按位左移)、>>(按位不带符号右移)、>>>(按位带符号右移) 运算规则: ~取反运算:对于操作数的二进制按位进行取反运算;规则:1变0;0变1; &与运算:对于操作数的二进制按位进行与运算;规则:1和1与为1;其他为0; 1&1=1 1&0=0 0&1=0 0&0=0 |或运算:对于操作数的二进制按位进行或运算;规则:0和0或为0;其他为1; 1|1=1 1|0=1 0|1=1 0|0=0 ^异或运算:对于操作数的二进制按位进行异或运算;规则:相同异或为0;不相同异或为1; 1^1=0 1^0=1 0^1=1 0^0=0 <<按位左移:对于操作数的二进制按位向左移动n位,左侧最高位的符号位不动,其他各位向左移动n位,向左移动移出范围的位会被舍弃,右侧空余位补0; 一个数左移n位等价于这个数*(2的n次方) >>不带符号右移:对于操作数的二进制按位向右移动n位,左侧最高位符号位不移动(除符号位之外的数右移),左侧空余位补最高位的符号位; 例如:1010 1100>>2 ===> 1110 1011 >>>带符号右移:对于操作数的二进制按位向右移动n位,左侧空余位补0; 例如:1010 1100>>>2 ===> 0010 1011 带符号的右移运算只对正数有意义,对负数没有意义; 注意: 位移运算(左移、不带符号右移、带符号右移)都是按位移动,移除范围的位会被舍弃; 1.4 比较运算(关系运算) 进行操作数大小相等关系比较的运算; 操作符:>、>=、<、<=、==(相等比较)、!=(不相等比较) 结论:比较运算的结果是布尔类型,也就是比较运算的结果不是 true就是false; 1.5 逻辑运算 进行逻辑判定的运算; ! 非(否定关系)【一元运算符】、 && 与(且关系)、 || 或(或关系) 特性:逻辑运算的操作数必须是布尔类型;并且逻辑运算的结果也是布尔类型; 因为比较运算的结果是布尔类型,所有逻辑运算经常和比较运算混合使用; 运算规则: ! 非:true变false;false变true; !true=false !false=true && 与:对于操作数进行与运算;规则:true和true与为true;其他为false;(连续的与运算表达式中只要有一个false,则结果为false) true&&true=true true&&false=false false&&true=false false&&false=false || 或:对于操作数进行或运算;规则:false和false或为false;其他为true;(连续的或运算表达式中只要有一个true,则结果为true) true||true=true true||false=true false||true=true false||false=false 逻辑短路: 因为逻辑&&和逻辑||运算有如下特点: 逻辑与:连续的与运算表达式中只要有一个false,则结果为false; 逻辑或:连续的或运算表达式中只要有一个true,则结果为true 规律: 逻辑与短路: 如果是多个连续的逻辑与运算,则从表达式的左侧开始,如果有一个表达式的结果为false,则可以判定整个表达式的结果为false;从该位置 往后的表达式则不会再被计算;这就是逻辑与短路; 逻辑或短路: 如果是多个连续的逻辑或运算,则从表达式的左侧开始,如果有一个表达式的结果为true,则可以判定整个表达式的结果为true;从该位置 往后的表达式则不会再被计算;这就是逻辑或短路; 混合逻辑短路:逻辑与和逻辑或混合运算也会产生逻辑短路现象。【课下扩展】 1.6 赋值运算 给变量进行赋值的操作; 赋值运算符:=、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=、>>>= +=赋值运算是将+的加法和=的赋值运算进行了合并; 例如: i+=2; 等效于: i= i+2; 注意: 类似于+=的运算不能和声明一起使用;例如 : int iVal10 +=2; // 非法使用 1.7 自增自减运算 变量自身进行自动+1或者-1运算;经常用做计数因子; 运算符: ++ -- 一元运算符、可以在变量之前,也可以在变量之后 语法: 变量之前的表达式:++变量名; --变量名; 变量之后的表达式:变量名++;变量名--; 解析:自增自减运算是一个表达式;表达式有自身的运算结果值; 表达式中含有变量;变量也有自身的值; 运算规律: 1)自增自减运算中含有两种值:自增自减表达式自身运算的结果值、自增自减表达式中含有的变量本身的值; 2)运算规则: 运算符在变量之前的先增、先减运算: 表达式的值+1(-1) 变量自身的值+1(-1) 运算符在变量之后的后增、后减运算: 表达式的值是变量运算之前的值(不进行+1或者-1运算) 变量自身的值+1(-1) 3)先增运算表达式的值需要+1操作;后增运算表达式的值不需要+1运算(使用变量的运算之前的值) 无论是先增还是后增运算,变量自身的值都是+1的; 自减运算亦同; 4)总结: 先增运算表达式的值是+1的;后增运算表达式的值是不+1的;变量的值永远+1; 先减运算表达式的值是-1的;后减运算表达式的值是不-1的;变量的值永远-1; 1.8 条件表达式 条件表达式是一个三元运算符; 运算符: ? : 语法: 条件判定表达式 ? 结果表达式1:结果表达式2; 解析: 运算条件判定表达式,如果条件判定表达式的结果为true, 则选取结果表达式1作为整个表达式的结果;否则,选取结果表达式2作为整个表达式的结果; 注意: 条件判定表达式的结果必须是布尔类型; 结果表达式1的类型和结果表达式2的类型必须一致;【二者之间可以进行默认转换也可以】 整个条件表达式的结果类型和结果表达式1或者结果表达式2的类型一样; 结果表达式1和结果表达式2还可以是一个条件表达式,这样就构成了条件表达式的嵌套形式; 结尾 ``` 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)