(三)Java运算符(Java基础笔记)

一、算术运算符

运算符:+ - * / % ++ –

注意:

1、byte/short在运算的时候会自动的提升为int

2、同一个类型参与运算,结果的类型与参与运算的类型一致。

3、 如果运算过程中有大类型参与了运算,结果一定是大类型

4、由于绝大部分小数在转化成二进制的时候是无限小数,所以double类型在存储小数的时候也没有办法精确存储,因此也没有办法来精确运算。

5、 整数/0 -> ArithmeticException

任意非0数字/0.0或者是任意小数/0-> Infinity

0/0.0->NaN-> Not a Number

1、求模运算取余

符号:%

规则:在做取余运算的时候,先按正数进行取余,然后看%左边数字的符号,如果%左边的数字是正数,那么结果就是正数

5 % 3 = 2  

1 % 4 = 1

-8%3=-2

8%-3=2

-8%-3=-2---

3.2 % 2 = 1.2  

5.4%1.7=0.3
2、自增自减运算符

符号:++/–

  • ++ 在变量名之前,表示先自增,自增完成之后才会参与其他运算

  • ++ 在变量名之后,表示先拿变量的原来的值参与运算,然后再自增

int i = 5;

//int j = ++i; -> i = i + 1; -> int j = i; -> j = 6;

int j = ++i * 2; -> i = 6, j = 12;

int i = 5;

// int j = i++; -> 表示先把5拿出来,i自增为6,然后把5赋值给j

int j = i++ * 2; -> i = 6, j = 10;->先把i的值5取出来参与乘法运算,然后i自增

 

int i = 3;

// int j = i++ + ++i; -> i = 5, j = 8;

int j = ++i + i++; -> i = 5, j = 8

注意:byte/short类型可以参与++/–运算,而且运算完成之后依然是原来的类型—Java在底层已经进行了强制转换

二、赋值运算符

符号:= += -= *= /= %= &= |= ^= <<= >>= >>>=

注意:除了=以外,其余的赋值运算符要求这个变量必须有值

byte/short可以参与赋值运算。

int i = 5;

i += i -= i *= i++; -> i = -15

i = 5+ (5 - ( 5 * 5));

三、关系/比较运算符

==用于判断两个值是否相等的 != 用于判断两个值是否不相等的 > < >= <=


int i = 4;

int j = 5;

i == j; -> false

i != j; -> true

i > j; -> false

instanceof—用于判断对象是否是否对应类的实例的。

“abc” instanceof String -> true

逻辑运算符

位运算符

三元运算符

四、逻辑运算符

&—与(And) |—或(Or) !—非(Not) ^—异或 &&—短路与 ||—短路或

true&true=true true&false=false false&true=false false&false=false

true|true=true true|false=true false|true=true false|false=false

!true=false !false=true

true^true=false truefalse=falsetrue=true false^false=false

对于&&而言,如果前边的表达式的结果为false,则后边的表达式就不再运算

对于||而言,如果前边的表达式的结果为true,则后边的表达式就不再运算

五、位运算符

& | ^ << >> >>> ~

注意:位运算针对的是整数,运算的是数据的补码

数据在计算机中是以补码形式来存储的。最高位是一个符号位—如果是正数,最高位为0,如果是负数,最高位为1. 对于正数而言,原反补三码一致。负数的反码是在原码的基础上,最高位不变,其余位0->1,1->0,负数的补码是在反码的基础上+1

6- 00000000 00000000 00000000 00000110—原码/反码/补码

-6 - 10000000 00000000 00000000 00000110—原码

11111111 11111111 11111111 11111001—反码

11111111 11111111 11111111 11111010—补码

11111111 11111111 11111111 11101101—补码

11111111 11111111 11111111 11101100—反码

10000000 00000000 00000000 00010011—原码— -19

[外链图片转存失败(img-cp5mxB87-1562151943190)(file:///C:\Users\志\AppData\Local\Temp\ksohtml3540\wps1.jpg)]

a ^ b ^ b = a; b ^ b ^ a = a

交换两个数的值:

int i = 3, j = 5;

方式一:第三方变量


int k = i;

i = j;

j = k;

方式二:加减法


i = i + j;

j = i - j;

i = i - j;

方式三:异或


i = i ^ j;

j = i ^ j; -> j = i ^ j ^ j; -> j = i;

i = i ^ j; -> i = i ^ j ^ i; -> i = j;

i ^= j; j ^= i; i ^= j;

注意:Java中所有的数值类型的数据都是有符号的。

六、三元运算符

逻辑值 ? 表达式1 :表达式2;

如果逻辑值为true的话,执行表达式1,;反之执行表达式2

练习:判断是否是一个奇数

在三元表达式形成嵌套的时候,尽量添加()来提高代码的可读性

练习: >=90 A >= 80 B >= 60 C < 60 D

从控制台获取数据:

import java.util.Scanner;

Scanner s = new Scanner(System.in);

double d = s.nextDouble();   // 获取小数

int i = s.nextInt();   // 获取整数

String str = s.nextLine();  // 获取一行

\+ 字符串拼接运算

String s = “a”;

s = s + “b”; -> s = “ab”




il.Scanner;

Scanner s = new Scanner(System.in);

double d = s.nextDouble();   // 获取小数

int i = s.nextInt();   // 获取整数

String str = s.nextLine();  // 获取一行

\+ 字符串拼接运算

String s = “a”;

s = s + “b”; -> s = “ab”

可以利用+将两个字符串进行拼接,或者也可以利用+将任何数据与字符串进行拼接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值