第三章 运算符

3.1 运算符介绍

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

1) 算术运算符

2) 赋值运算符

3) 关系运算符 [比较运算符]

4) 逻辑运算符

5) 位运算符 [需要二进制基础]

6) 三元运算

3.2 算术运算符

算术运算符是对数值类型的变量进行运算的

  1. 当对一个数取模时,可以等价a%b=a-a/b*b,这样我们可以看到取模的一个本质运算。
  2. 自增: ++作为独立的语句使用:

前++和 后++都完全等价于i=i+1;

作为表达式使用:

前++∶ ++i 先自增后赋值

后++: i++ 先赋值后自增

3.3 关系运算符(比较运算符)

3.3.1 介绍

1) 关系运算符的结果都是 boolean 型,也就是要么是 true,要么是 false

2) 关系表达式 经常用在 if 结构的条件中或循环结构的条件中

3.4 逻辑运算符

3.4.1介绍 用于连接多个条件(多个关系表达式),最终的结果也是一个 boolean 值。

3.4.2逻辑运算符

1) 短路与 && , 短路或 ||, 取反 !

2) 逻辑与 &, 逻辑或 |, ^ 逻辑异 或

说明逻辑运算规则:

1) a&b : & 叫逻辑与:规则:当 a 和 b 同时为 true ,则结果为 true, 否则为 false

2) a&&b : && 叫短路与:规则:当 a 和 b 同时为 true ,则结果为 true,否则为 false

3) a|b : | 叫逻辑或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false

4) a||b : || 叫短路或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false

5) !a : 叫取反,或者非运算。当 a 为 true, 则结果为 false, 当 a 为 false 是,结果为 true

6) a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false

3.4.1&& 和 & 使用区别

1) &&短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false,效率高

2) & 逻辑与:不管第一个条件是否为 false,第二个条件都要判断,效率

3) 开发中, 我们使用的基本是使用短路与&&,

3.4.2 || 和 | 使用区别

1) ||短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true,效率高

2) | 逻辑或:不管第一个条件是否为 true,第二个条件都要判断,效率低

3) 开发中,我们基本使用 | |

3.5赋值运算符的分类

3.5.1复合赋值运算符

a += b; [等价 a = a + b; ]

a -= b; [等价 a = a - b; ]

3.5.2赋值运算符特点

1) 运算顺序从右往左 int num = a + b + c;

2) 赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值 int num = 20; int num2= 78 * 34 - 10;

int num3 = a;

3) 复合赋值运算符等价于下面的效果 比如:a+=3;等价于 a=a+3; 其他类推

4) 复合赋值运算符会进行类型转换。 byte b

3.6 三元运算符

4.6.1基本语法 条件表达式 ? 表达式 1: 表达式 2;

运算规则:

1. 如果条件表达式为 true,运算后的结果是表达式 1;

2. 如果条件表达式为 false,运算后的结果是表达式 2;

3.7 标识符的命名规则(必须遵守)

  1. 由26个英文字母大小写,0-9,_或$组成
  2. 数字不可以开头。int 3ab= 1; //错误
  1. 不可以使用关键字和保留字,但能包含关键字和保留字。
  2. Java中严格区分大小写,长度无限制。int totalNum =10;int n = 90
  1. 标识符不能包含空格。int a b = 90;

3.8标识符命名规范

1) 包名:多单词组成时所有字母都小写:aaa.bbb.ccc //比如 com.hsp.crm

2) 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz [大驼峰] 比如: TankShotGame

3) 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz [小 驼峰, 简称 驼峰法] 比如: tankShotGame

4) 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

3.9进制

3.9.1 进制介绍 对于整数,有四种表示方式:

二进制:0,1 ,满 2 进 1. 以 0b 或 0B 开头。 如0b101

十进制:0-9 ,满 10 进 1。

八进制:0-7 ,满 8 进 1. 以数字 0 开头表示。 010

十六进制:0-9 及 A(10)-F(15),满 16 进 1. 以 0x 或 0X 开头表示。此处的 A-F 不区分大

3.9.1原码、反码、补码(

  1. 二进制的最高位是符号位:0表示正数,1表示负数 (口诀 : 0->0 1->-)
  2. 正数的原码,反码,补码都一样(三码合一)
  1. 负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)
  2. 负数的补码=它的反码+1,负数的反码=负数的补码-1
  1. O的反码,补码都是0
  2. java没有无符号数,换言之,java中的数都是有符号的
  1. 在计算机运算的时候,都是以补码的方式来运算的.
  2. 当我们看运算结果的时候,要看他的原码(重点)

3.9.2 位运算符

(1 为真, 0为假)

按位与& : 两位全为1,结果为1,否则为0

按位或 | : 两位有一个为1,结果为1,否则为0

按位异或 ^ : 两位一个为0,一个为1,结果为1,否则为0

按位取反~: 0->1,1->0

1) 算术右移 >>:低位溢出,符号位不变,并用符号位补溢出的高位

2) 算术左移 <<: 符号位不变,低位补 0

3) >>> 逻辑右移也叫无符号右移,运算规则是: 低位溢出,高位补 0

4) 特别说明:没有 <<< 符号

示例:

1) int a=1>>2; //1 => 00000001 => 00000000 本质 1 / 2 / 2 = 0 ;

2) int c=1<<2; //1 => 00000001 => 00000100 本质 1 * 2 * 2 = 4 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值