B站韩顺平java学习笔记(三)--运算符章节

目录

一、算术运算符

1.  表格

2.  练习题:

二、 关系运算符

1.  表格

三、逻辑运算符

1.  表格

2.  练习题

四、赋值运算符

1.  介绍

2.细节特点

五、三元运算符

1.  基本语法

2.  使用细节

六、运算符优先级

1.  表格

七、标识符的命名规则和规范

1.  标识符的命名规则

2.  标识符命名规范

八、键盘输入语句

1.  步骤

九、进制

十、原码、反码、补码(重点 难点)

十一、位运算符


一、算术运算符

1.  表格

运算符运算范例结果
+正号+77
-负号b = 11;-b-11
+9+918
-10-82
*7*856
/9/91
%取模(取余)11%92

++

++

自增(前):先运算后取值

自增(后):先取值后运算

a = 2;b = ++a

a = 2;b = a++

a = 3;b = 3

a = 3;b = 2

- -

- -

自减(前):先运算后取值

自减(后):先取值后运算

a = 2;b = - -a

a = 2;b = a- -

a = 1;b = 1

a = 1;b = 2

+字符串相加"abc"+"def""abcdef"

        使用细节

        ①  除法(/)

System.out.println(10 / 4); 
//输出2,因为10和4都是int型数据,结果为int型
System.out.println(10.0 / 4);  
//输出2.5,因为10.0是double型,故结果为double型
double d = 10 / 4;
System.out.println(d);  
//输出2.0,因为10/4计算得int型结果2,然后将2转换为double型得2.0

        ②  取模(%)

        %的本质:a % b = a - a / b * b

        ③  自增(++)用法同自减(- -)

int j = 8;
int k = j++;  // k = j;j = j + 1
System.out.println("k = " + k + "j = " + j)  // 结果:k = 8; j = 9

int x = 8;
int y = ++x;  //  x = x + 1;y = x;
System.out.println("y = " + y + "x = " + x)  // 结果:x = 9; y = 9

2.  练习题:

int i = 1;
i = i++;  //(1) temp = i;(2)i = i + 1;(3)i = temp;
System.out.println(i);  //输出1 

int x = 1;
x = ++x;  //(1)x = x + 1;(2)temp = x;(3)x = temp;
System.out.println(x);  //输出2
//定义一个变量保存华氏温度,华氏温度转换为摄氏温度的公式为:5/9*(华氏温度-100)
//算出华氏温度对应的摄氏温度
double a = 234.5;
double b = 5.0 / 9 * (a - 100);
//注意是5.0不是5 因为int型的精度比较低,导致最后的结果为零
System.out.println("对应的温度为" + b);

二、 关系运算符

1.  表格

运算符运算范例结果
= =相等于8 = = 7false
! =不等于8!=7true
<小于8<7false
>大于8>7true
< =小于等于8<=7false
> =大于等于8> =7true
instanceof 检查是否是类的对象"lhh" instanceof Stringtrue

        使用细节

        ①  关系运算符的结果都是boolean型,true 或者 false。

        ②  关系运算符组成的表达式叫做关系表达式。

        ③  比较运算符“= =”不能误写成“=”。

三、逻辑运算符

1.  表格

aba&b(逻辑与)a&&b(短路与)a|b(逻辑或)a||b(短路或)!a(取反)a^b(逻辑异或)
truetruetruetruetruetruefalsefalse
truefalsefalsefalsetruetruefalsetrue
falsetruefalsefalsetruetruetruetrue
falsefalsefalsefalsefalsefalsetruefalse

        使用细节

        ①  && 和 & 使用区别

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

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

        在开发当中,一般都是用短路与&&,效率高。

        ②  | | 和 | 使用区别

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

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

        在开发当中,一般都是用短路或| |,效率高。

2.  练习题

boolean x = true;
boolean y = false;
short z = 46;
if(z++ == 46)&&(y = true) z++;  //注意 y = true 是赋值,为true
if(x = false)||(++z == 49) z++;  //注意 x = false 是赋值,为true
System.out.println("z=" + z);  //结果z= 50

四、赋值运算符

1.  介绍

        基本赋值运算符: =

        复合赋值运算符:

        + = ;- =;* =;/ =;%=;等 

2.细节特点

        (1)运算顺序从右往左。

        (2)赋值运算符的左边只能是变量,右边可以是变量、表达式、常量值。

        (3)符合赋值运算符等价于下面的效果:a += 3 //a = a + 3。

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

byte b = 3;
b += 2;  //等价于b = (byte)(b + 2);
b++;  //等价于b = (byte)(b + 1);

五、三元运算符

1.  基本语法

        条件表达式 ? 表达式1:表达式2;

        运算规则

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

        (2)如果条件表达式为false,运算后的结果是表达式2。

2.  使用细节

        (1)表达式1和表达式2要为可以赋给接受变量的类型(或者可以自动转换)

        (2)三元运算符可以转为if--else语句

if res = a > b ? a++;--b;  //等价于下面

if (a > b) res = a++;

else res = --b;

        练习题:求三个数中的最大值

int a = 10;
int b = 20;
int c = 30;
//方法一
int temp = a > b ? a : b;
int	lagest = temp > c ? temp : c;
System.out.println("a,b,c当中最数的是" + lagest);
//方法二
int	lagest = (a > b ? a : b) > c ? (a > b ? a : b) : c;
System.out.println("a,b,c当中最数的是" + lagest);

六、运算符优先级

1.  表格

.  ()  {}  ;  ,
R—>L+ +  - -  ~  !(data type)
L—>R*  /  %
L—>R+  -
L—>R<<  >>  >>>  位移
L—>R<  >  <=  >=  instanceof
L—>R= =  ! =
L—>R&
L—>R^
L—>R|
L—>R&&
L—>R| |
L—>R? :
R—>L=   *=  /=  %=
+=  *=  <<=  >>=
>>>=  &=  ^=  |=

        优先级从上到下依次减退。

        (1)() {}等

        (2)单目运行  + +  - -

        (3)算术运算符

        (4)位移运算符

        (5)比较运算符

        (6)逻辑运算符

        (7)三元运算符

        (8)赋值运算符

七、标识符的命名规则和规范

1.  标识符的命名规则

        (1)由26个英文字母大小写,0-9,_或$组成。

        (2)数字不可以开头。

        (3)不可以使用关键字和保留字,但是可以包含关键字和保留字。

        (4)Java中严格区分大小写,长度无限制。

        (5)标识符不能包含空格。

2.  标识符命名规范

        (1)包名:多单词组成时所有字母都小写:aaa.bbb.ccc

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

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

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

        (5)其他的规范之后补充。

八、键盘输入语句

1.  步骤

        (1)导入该类的所在包,java.util.*(*在此为Scanner)。

        (2)创建该类对象(声明变量)。

        (3)调用里面的功能。

import java.util.Scanner;
public class Input {
	public static void main(String[] args){
		Scanner oneScanner = new Scanner(System.in);
		System.out.println("请输入姓名:");
		String name = oneScanner.next();
		System.out.println("请输入性别:");
		String gender = oneScanner.next();
		System.out.println("请输入年龄:");
		int age = oneScanner.nextInt();
		System.out.println("请输入薪资:");
		double sal = oneScanner.nextDouble();
		System.out.println("姓名:" + name + " 性别:" + gender 
			+" 年龄:"+ age + " 薪资:" + sal);
	}
}

九、进制

        对于整数,有四种表示方式:

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

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

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

        4.  十六进制:0-9及A(10)-F(15),满16进1,以0x或者0X开头表示,其中A-F不区分大小写。

十、原码、反码、补码(重点 难点)

        1.  二进制的最高位十符号位:0表示正数,1表示负数。

        2.  正数的原码、反码,补码都一样。

        3.  负数的反码 = 它的原码符号位不变,其它位取反。

        4.  负数的补码 = 它的反码 + 1,负数的反码 = 负数的补码 - 1。

        5.  0的反码,补码都是0。

        6.  java没有无符号数,换言之,java中的数都是有符号的。

        7.  在计算机运算的时候,都是以补码的方式来运算的。

        8.   当我们看运算结果时候,要看他的原码

十一、位运算符

        java当中有7个位运算(&、|、^、~、>>、<<和>>>)

        分别十按位与&、按位或|、按位异或^、按位取反~,算术右移>>,算术左移<<,逻辑右移(无符号右移)>>>,它们的运算规则:

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

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

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

        按位取反~:0变1,1变0

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

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

        逻辑右移(无符号右移)>>>:低位溢出,高位补0(注意:没有<<<符号)

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值