【第一阶段:java基础】第3章:java运算符
创始人
2024-03-31 13:59:10
0

本系列博客是韩顺平老师java基础课的课程笔记

韩顺平P62-P102

  • 1. 运算符介绍
  • 2. 算数运算符
  • 3. 关系/比较运算符
  • 4. 逻辑运算符
  • 5. 赋值运算符
  • 6. 三元运算符
  • 7. 运算符优先级
  • 8. 标识符的命名规则和规范
  • 9. 键盘输入语句
  • 10. 进制❤
  • 11. 位运算

1. 运算符介绍

运算符是一种特殊的符号,用以表示数据的运算,赋值和比较

2. 算数运算符

在这里插入图片描述

  • 对数值类型的变量进行运算,是java中最多的
  • 除法细节:10/4=2 (向下取整) 10.0/4=2.5 double d=10/4=2.0
  • 取余细节:10%3=1 -10%3=-1 10%-3=1(java中%的本质是:a%b=a-a/bb)10%-3=10-10/(-3)(-3)=1
  • ++细节❤:
    • 当++作为独立语句使用时,++i 和 i++ 是完全等价的
      在这里插入图片描述
    • 当++作为表达式使用时,++i等价于两条语句:先自增再赋值
    • 面试题:把i赋值给i时,会使用一个临时变量temp
      在这里插入图片描述

3. 关系/比较运算符

在这里插入图片描述
关系运算符的结果都是布尔型的,经常用在if语句或者循环语句中

4. 逻辑运算符

在这里插入图片描述

  • 用于连接多个表达式,运算结果是布尔值
  • 运算规则
      1. a&b : &叫逻辑与:规则:当a和b同时为true则结果为true,否则为false
      1. a&&b : &&叫短路与:规则:当a和b同时为true则结果为true,否则为false
      1. alb:l叫逻辑或, 规则:当a和b.有一个为true .则结果为true,否则为false
      1. allb:I叫短路或,规则:当a和b,有一个为true则结果为true,否则为false
      1. ~a:叫取反,或者非运算。当a为true,则结果为false,当a为false是,结果为true
      1. a^b:叫逻辑异或,当a和b不同时,则结果为true,否则为false
  • 细节
      1. 逻辑与和短路与的区别:两者的运算结果是一样的,但是对于短路与&&而言,如果第一个条件为false,后面的条件不会再判断;对于逻辑与&而言,第一个条件为false时,后面的条件仍然会判断。在这里插入图片描述
      1. 短路或和逻辑或的区别:两者的运算结果是一样的,但是对于短路或而言||,如果第一个条件为true,后面的条件不会再判断;对于逻辑或|而言,第一个条件为true时,后面的条件仍然会判断
        在这里插入图片描述
    • 因此工程上一般用短路与和短路或,因为他们的效率更高。

5. 赋值运算符

  • 基本赋值运算符:a=10
  • 复合赋值运算符:+=,-=,*= 等
  • 细节
    • 进行复合赋值运算时,实际上会有一个强制类型转换。这个例子中直接用b=b+2就会报错,因为把int类型赋值给byte类型。
      在这里插入图片描述

6. 三元运算符

  • 基本语法:条件表达式? 表达式1:表达式2
  • 运算规则:如果条件表达式是true,运算结果是表达式1;如果条件表达式为false,则运算结果为表达式2
  • 细节:
      1. 表达式1和表达式2要为可以赋给接受变量的类型(或可以自动转换)2. 三元运算符可以转成if else语句
        在这里插入图片描述

7. 运算符优先级

在这里插入图片描述
从上至下,优先级逐渐降低,只有单目运算和赋值运算时从右至左的

8. 标识符的命名规则和规范

  • 标识符:对各种变量,方法还有类等命名时使用的字符序列称为标识符
  • 规则(必须遵守)
    • 由26个英文字母大小写,0-9,_ 或$组成
    • 数字不可以开头
    • 不可以使用关键字(已经被java的设计者使用了)和保留字(以后会被java设计者使用的),但是可以包含关键字和保留字(abclass)
    • 标识符严格区分大小写,长度没有限制
    • 标识符不能包含空格
  • 规范(最好遵守)
    • 包名:由多个单词组成时,所有字母都要小写
    • 类名,接口名:由多个单词组成时,所有单词的首字母大写ThisNewClass
    • 变量名,方法名:多个单词组成时,第一个单词首字母大写,第二个单词每个单词的首字母大写:tankShotGame
    • 常量名:所有字母都要大写,多个单词之间每个单词用下划线连接:TAX_RATE

9. 键盘输入语句

  1. 引入Scanner所在的包 import java.util.Scanner
  2. 创建 Scanner的对象 Scanner myScanner = new Scanner(System.in);
  3. 接受用户的输出 String name=myScanner .next()

10. 进制❤

  • 对于整数有4种表示方式
    • 二进制:以0b或者0B开头
    • 十进制
    • 八进制:以0开头表示
    • 十六进制:0-9 A-F(a-f) 以0x或者0X开头
  • 进制转换
    1. 其他进制转十进制:从最低位开始,每个位上的数提取出来,乘以8的(位数-1)次方,然后求和
    1. 十进制转其他进制:将这个数不断除以8,知道商为0为止,然后将没步得到的余数倒过来,就是对应的二进制
    1. 二进制转其他进制
    • 2->8: 从最低位开始,将二进制每三位一组,转成对应的八进制数即可
    • 2->16: 从最低位开始,将二进制每四位一组,转成对应的八进制数即可
    1. 其他进制转二进制
    • 8->2: 将八进制数的每一位转成一个3位的二进制数即可
    • 16->2: 将十六进制的每一位转成一个4位数的二进制数即可

11. 位运算

  • 原码,反码,补码
    • 二进制的最高位为符号位
    • 正数三码合一都一样
    • 负数的反码=原码符号位不变,其他位取反
    • 负数的补码=反码+1 反码=补码-1
    • 0的反码补码全是0
    • java中所有的数都是有符号的
    • 计算机运算时,以补码的方式进行运算
    • 当我们看结果的时候,要看他的原码(运算结束之后要把补码转为原码)
    • 补码将正数和负数运算统起来
  • 按位与&
  • 按位或|
  • 按位异或^
  • 按位取反~
  • 算术右移>>:符号位不变,低位溢出,高位用符号位补充;每移动1位,相当于除以一次2
  • 算数左移<<:符号位不变,低位补0,每移动1位,相当于乘以1次2
  • 逻辑右移>>>:无符号右移,低位溢出,高位补0。只有逻辑右移没有逻辑左移.

今天的课程可真算是查漏补缺了~很多收获,还上手做了几个算法题,感觉还可以。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...