【Java】韩顺平Java学习日志02——运算符和标识符

运算符

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

算术运算符

算术运算符是对数值类型的变量进行运算的
在这里插入图片描述
%取模(取余)的本质:a%b=a-a/b*b

10%3;//1
-10%3;//-1 -10-(-10)/3*3=-1
10%-3//1 10-10/-3*-3=1
-10%-3//-1 -10--10/-3*-3=-1

独立使用前后++都完全等价于i=i+1
但如果赋值表达式使用前加加和后加加结果不同,前加加先自增再赋值,后加加先赋值再自增
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果直接用5/9计算得到为0,注意公式与Java语言特性的结合

关系运算符

关系运算符的结果都是boolean型(true,flase)
干系表达式的结果也是boolean型,可以用于赋值
注意==和=的区别使用
在这里插入图片描述

逻辑运算符

用于连接多个条件(多个关系表达式),最终的结果也是一个boolean值
在这里插入图片描述

&&和&的区别:

&&短路与:如果第一个条件为false 则第二个条件不会判断,最终结果为false,效率高
&逻辑与:不管第一个条件是否为false,第二个条件都要判断,效率低
开发中基本使用短路与&&,效率高
在这里插入图片描述
在这里插入图片描述

||和|的区别

短路或||:如果第一个条件为true,则第二个条件不会判断,最终结果为true,效率高
逻辑或,不管第一个条件是否为true,第二个条件都要判断,效率低
开发中基本使用||
在这里插入图片描述
在这里插入图片描述

异或

ab相同取false,ab不同取true
在这里插入图片描述
在这里插入图片描述练习题
在这里插入图片描述

赋值运算符

将某个运算后的值赋给指定的变量

基本赋值运算符

=
int a=b;
int a=表达式

复合赋值运算符

+=,-=,*=,/=,%=
a+=b即a=a+b;

特点

运算顺序从右往左,即先执行=右边的值,再将右边计算结果赋值给左边
赋值运算符的左边只能是变量,右边可以是变量,表达式,常量值
复合赋值运算符会进行类型转换、

byte b=2;
b+=2;//自动类型转换为b=(byte)(b+2),但是b=b+2是会报错的
b++;//自动类型转换为b=(byte)(b+1),但是b=b+1是会报错的

三元运算符

条件表达式?表达式1:表达式2
如果条件表达式为true,运算后的结果为表达式1,如果如果条件表达式为false,运算后的结果为表达式2

int a=10;
int b=99;
int result=a>b?a++:b--;
//判断结果为false,返回b--,先返回b的值,然后再b-1
System.out.println(result);//99 如果是--b,则为98
注意

表达式1和表达式2要为可以赋给接收变量的类型(或者可以进行自动类型转换,或者进行强制类型转换)
三元运算符可以转换为if-else语句

int a=3;
int b=8;
int c=a>b?(int)1.1:(int)3.4;//OK 类型转换

//实现三个数的最大值
int n1=55;
int n2=33;
int n3=123;
int max1=n1>n2?n1:n2;
int max2=max1>n3?max1:n3;

int max=(n1>n2?n1:n2)>n3?(n1>n2?n1:n2):n3;

运算符优先级

在这里插入图片描述
只有单目运算符,赋值运算符的从右向左运算的
(1)(),{}等
(2)单目 ++,–
(3)算术运算符
(4)位移运算符
(5)比较运算符
(6)逻辑运算符
(7)三元运算符
(8)赋值运算符

标识符

Java对各种变量,方法和类等命名时使用的字符序列称为标识符

命名规则(不遵守会报错)

1.由26个英文字母大小写,0-9,或_或$组成
2.数字不可以开头
3.不可以使用关键字和保留字,但能包含关键字和保留字
4.Java中严格区分大小写,长度无限制
5.标识符不能包含空格
在这里插入图片描述

命名规范

1.包名:多单词组成时,所有字母都小写 aaa.bbb
2.类名,接口名:多单词组成时,所有单词的首字母大写,大驼峰写法
3.变量名,方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写,小驼峰(驼峰法)
4.常量名:所有字母都大写,多个单词时每个单词用下划线连接

关键字

被Java语言赋予了特殊含义,用做专门用途的字符串
关键字中所有字母都是小写
在这里插入图片描述
在这里插入图片描述

保留字

现有Java版本没有使用,但以后的版本可能会作为关键字使用,尽量避免使用这些保留字
在这里插入图片描述

键盘输入语句

简单的文本扫描器对象Scanner
步骤:
导入Scanner所在的包java.util.*(import),创建该类对象(声明变量),调用里面的功能,接收输入

进制

1.二进制:满2进1,以0b或0B开头
2.十进制:满10进1
3.八进制:满8进1,以0开头表示
4.十六进制:满16进1(0-9及A-F),以0x或0X开头表示,此处A-F不区分大小写

位运算

7个位运算符:按位与&,按位或|,按位异或^,按位取反~,算术右移>>,算术左移<<,逻辑右移(无符号右移)>>>
运算规则:
按位与&:两位全为1 ,结果为1,否则为0;
按位或|:两位有一个为1 ,结果为1,否则为0
按位异或^:两位一个为0,一个为1,结果为1,否则为0
按位取反~:0->-1,-1->0
算术右移>>:低位溢出,符号位不变,并且用符号位补溢出的高位(向右移动1位就是除以2一次)
算术左移<<:符号位不变,低位补0
逻辑右移(无符号右移)>>>:低位溢出,高位补0
注意没有<<<符号

//位移运算>>
int a=1>>2;//00000000 向右位移两位1/2/2=0
int a=1<<2;//00000100 1*2*2=4
int e>>>2;
~2;//按位取反
2&3;//2按位与
-3^3;//按位异或

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

原码,反码,补码

1.二进制的最高位是符号位,0表示正数,1表示负数
2.正数的原码,反码,补码都一样
3.负数的反码=它的原码符号位不变,其他位取反
4.负数的补码=它的反码+1,负数的反码=负数的补码-1
5.0的反码,补码都是0
6.Java中的数都是有符号的
7.在计算机运算的收获,都是以补码的方式来运算的
8,看运算结果时,看其原码

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值