随笔——Java编程学习(一) 运算符

Java基础回顾(二)——运算符

运算符可以分成以下几组:

  • 算术运算符
  • 关系运算符
  • 位运算符
  • 逻辑运算符
  • 赋值运算符
  • 其他运算符
算术运算符(可以对常量和变量进行操作)

算数运算符为“+”、“-”、“*”、“/”、“%”、“++”、“–”,分别指“加”、“减”、“乘”、“除”、“取余”、“自增”、“自减”,共七种。

特殊情况
特殊一: 两个整数相除得到的还是整数 ,小数部分会略去。如果想要得到小数,需要将其中一个数转成浮点数。
特殊二: 在乘除法中,若其中一个数为浮点类型,则相乘或相除获得值为浮点类型。
特殊三: 使用浮点数做运算的时候的不精确性。
  • 原因: double 和 float两个类型在java中本身就是非精确存储的,再用两个近似值去做计算,得到的结果就只能是一个近似值。
特殊四: 可以使用+对 字符串进行组拼,任何类型和字符串相加都会把数据转成字符串,再进行组拼
特殊五: 使用 字符做算术运算的时候,会自动把字符转换成对应的数字,然后进行数学运算
自增和自减运算符
  1. 前缀自增自减法(++a,–a) 先进行自增或自减运算,再进行表达式运算
  2. 后缀自增自减法(a++,a–) 先进行表达式运算(加减乘除等), 再进行自增或自减运算
关系运算符

Java支持的关系运算符有六种,分别是“==”、“!=”、“>”、“<”、“>=”、“<=”。其作用是判断是否为真。为真时返回true值,为假时返回false值。

注意区分 == 和 =
System.out.println(a==b); //判断a是否等于b
System.out.println(a=b);//b赋值给a
位运算符

位运算符有七种,分别是“&”、“|”、“^”、“~”、“<<”、“>>”、“>>>”。位运算符多用于二进制运算。

  1. &: 按位与 => 1、1为1
  2. |: 按位或 => 0、0为1
  3. ^: 按位异或 => 相同为0
  4. ~: 按位取反 => 0变1,1变0
  5. <<: 按位左移 => 往左移几位。如A<<2,则A所对应的二进制数往左移2位。
  6. >>: 按位右移 => 往右移几位。如A>>2,则A所对应的二进制数往右移2位。
  7. >>>: 按位右移补零操作符 => 往右移几位,空位补零。如A>>>2,则A所对应的二进制数往右移2位且左边补零。
原码、反码和补码
计算机是二进制的,所有的数据使用二进制来存储。对于每个二进制来说都有原码、反码和补码。计算机存储数据的时候,使用第一位表示数字的正负,0代表正数,1代表负数。计算机存储正数的时候直接存储正数的原码,存储负数的时候存储负数的补码。(为什么存储补码,而不是原码,这个是为了方便进行数学运算)
  • 正数: 原码、反码和补码相同。
  • 负数:
    • 原码(符号位为1)
    • 反码(符号位不变,其余位数取反)
    • 补码(反码+1)
逻辑运算符

逻辑运算符有六种,分别是“&&”、“| |”、“!”、“^”、“&”、“|”。(两个负数运算获得的结果为补码,需转为原码获得输出值)

  1. &&: 短路逻辑与 => 真真为真
  2. | |: 短路逻辑或 => 有真则为真
  3. !: 逻辑非 => 与条件相反,条件为true则返回false。
  4. ^: 异或 => 两边结果一样时为false,不一样时true。
  5. &: 逻辑与 => 真真为真
  6. |: 逻辑或 => 有真则为真
短路逻辑运算符
逻辑与的特殊情况 因为逻辑与运算符运算时,真真才为真。因此当第一个操作为假时,其结果必定为假,所以将不会再判断接下去的操作,也不会执行接下去的操作。所以称之为短路逻辑与运算符。
逻辑或的特殊情况 因为逻辑或运算符运算时,有真则为真。因此当第一个操作为真时,其结果必定为真,所以将不会再判断接下去的操作,也不会执行接下去的操作。所以称之为短路逻辑或运算符。
赋值运算符

Java语言支持的赋值运算符有十一种,分别是“=”、“+=”、“-=”、“*=”、“/=”、“(%)=”、“<<=”、“>>=”、“&=”、“^=”、“|=”。

运算方式:
C?=A => C=C?A;
?代表“+”、“-”、“*”、“/”、“%”、“<<”、“>>”、“&”、“^”、“|”
其他运算符
条件运算符(?:)

条件运算符也被称为三元运算符。

运算公式:
variable x = (expression) ? value if true : value if false
布尔表达式?表达式1:表达式2
公式解析: 判断x值是否等于表达式expression的值,等于输出如果为真的值(?与:之间的内容),反之输出如果为假的值(:之后的内容)。
instanceof 运算符

该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。

instanceof运算符使用格式如下:
( Object reference variable ) instanceof (class/interface type)
公式解析: 如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。

数据类型转换

隐式类型转换

小类型到大类型会自动转换: byte->short,char->int->long->float->double
虽然float比long小,但是因为存储方法不一样导致float里面可以存储的数据范围比long要大(浮点型来说,有一部分是用来表示有效位数的,有一部分是用来表示多少次方。)

使用情况:
  1. 赋值语句
  1. 算术表达式中

显式类型转换(也叫做强制类型转换)

把一个大类型赋值给小类型,需要进行前置类型转换,如:
int i = (int)3.3;
long j = (long)3.4f;
int c = ‘a’;//隐式转换
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值