一、什么是运算符?
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等
运算符分为算术运算符、赋值运算符、关系运算符(比较运算符)、逻辑运算符、位运算符、三元运算符
1、算术运算符是对数值类型的变量进行运算的,在java程序中使用的非常多
%取余
%的本质,看一个公式a%b=a-a/b*b
i++先运行再加一,++i先加一再运行;
2、关系运算符:
-
关系运算符的结果都是boolean型,也就是要么是true,要么是false
-
关系运算符组成的表达式,我们称为关系表达式,a>b
-
比较运算符"=="不能误写成"="
注:instanceof,用于检查是否是类的对象
3、逻辑运算符:
用于连接多个条件(多个关系表达式),最终的结果也是一个boolean值
-
a&b(逻辑与),当a和b同时为true,则结果为true,否则为false
-
a&&b(短路与),当a和b同时为true,则结果为true,否则为false
-
a|b:(逻辑或),当a和b,有一个为true,则结果为true,否则为false
-
a||b(短路或),当a和b,有一个为true,则结果为true,否则为false
-
!a(取反),当a为true,则结果为false,当a为false,结果为true
-
a^b(逻辑异或),当a和b不同时,则结果为true,否则为false
&&和&基本规则
-
短路与&&:两个条件都为true,结果为true
-
逻辑与&:两个条件都为true,结果为true
&&和&使用区别:
-
&&短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false,效率高
-
&逻辑与:不管第一个条件是否为false,第二个条件都要判断,效率低
-
开发中,我们使用的基本是短路与&&,效率高
||和|基本规则:
-
短路或||:两个条件中只要有一个成立,结果为true
-
逻辑或|:只要有一个条件成立,结果为true,否则为false
||和|使用区别:
-
||短路或:如果第一个条件为true,则第二个条件不会判断,最终结果为true,效率高
-
|逻辑或:不管第一个条件是否为true,第二个条件都要判断,效率低
-
开发中,我们基本使用||
!取反基本规则
-
!(取反):如果条件本身成立,结果为false,否则为true
4、赋值运算符:
赋值运算符就是将某个运算后的值,赋给指定的变量
赋值运算符的分类:
-
基本赋值运算符=
-
复合赋值运算符(+=,-+,*=,/=,%=)
a+=b(等价于a=a+b)
a-=b(等价于a=a-b)
赋值运算符的特点:
-
运算顺序从右往左
-
赋值运算符的左边,只能是变量,右边可以是 变量、表达式、常量值
-
复合赋值运算符等价于下面的效果
eg:a+=3等价于a=a+3
-
复合赋值运算符会进行类型转换
byte b=2; b+=3; 等价于b=(byte)(b+2) b++; 等价于b=(byte)(b+1)
5、三元运算符:
条件表达式?表达式1:表达式2;
如果条件表达式为true,运算后的结果是表达式1;
如果条件表达式为false,运算后的结果为表达式2
三元运算符使用细节:
-
表达式1和表达式2要为可以赋给接收变量的类型(或可以自动转换)
-
三元运算符可以转成if--else语句
6、运算符优先级:
-
运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序
-
只有单目运算符、赋值运算符是从右向左运算的
优先级顺序:
-
(),{}等
-
单母运算符++ ——
-
算术运算符
-
位移运算符
-
比较运算符
-
逻辑运算符
-
三元运算符
-
赋值运算符
二、标识符的命名规则和规范
1、标识符概念:
-
java对各种变量、方法和类等命名时使用的字符序列称为标识符
-
凡是自己可以起名字的地方都叫标识符
2、标识符的命名规则
-
由26个英文字母大小写,0-9,_或$组成
-
数字不可以开头
-
不可以使用关键字和保留字,但能包含关键字和保留字
-
java中严格区分大小写,长度无限制
-
标识符不能包含空格
3、关键字:在Java语言中被语言设计者所使用的叫关键字,被JAVA语言赋予了特殊含义,用作专门用途的字符串(单词)
特点:关键字中所有字母都为小写
4、保留字:现在 java版本尚未使用,但以后版本可能会作为关键字使用,自己命名 标识符时要避免使用这些保留字(byValue、cast、future、 generic、inner、operator、outer、rest、var、goto、const)
5、标识符命名规范:
-
包名:多单词组成时所有字母都小写
-
类名、接口名:多单词组成时,所有单词的首字母大写
-
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个字母都大写
-
常量名:所有字母都大写,多单词时每个单词用下划线连接
三、键盘输入语句:
在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取,需要一个扫描器(对象),就是Scanner
-
步骤:导入该类的所在包,java.util.*
-
创建该类对象(声明变量)
-
调用里面的功能
补充: -10.5%3=? //a%b 当a是小数时,公式=a-(int)a/b*b -10.5%3=-10.5-(-10)/3*3=-10.5+9=-1.5 注意:有小数运算,得到的结果是近似值
四、进制:
1、对于整数,有四种表示方式:
二进制:0,1,满2进1,以0B或0b开头
十进制:0-9,满10进1
八进制:0-7,满8进1,以数字0开头表示
十六进制:0-9及A(10)-F(15),满16进1,以0x或0X开头表示,此处的A-F不区分大小写
二进制转换成十进制规则:从最低位(右边)开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和
八进制转换成十进制规则:从最低位(右边)开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和
十六进制转换成十进制规则:从最低位(右边)开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和
五、原码、反码、补码重点:
-
二进制的最高位是符号位:0表示整数,1表示负数
-
正数的原码,反码,补码都一样(三码合一)
-
负数的反码=它的原码符号位不变,其它位取反
-
负数的补码=它的反码+1,负数的反码=负数的补码-1
-
0的反码,补码都是0
-
java没有无符号数,换言之,java中的数都是有符号的
-
在计算机运算的时候,都是以补码的方式来运算的
-
当我们看运算结果的时候,要看它的原码
六、位运算符:
分别是按位与&,按位或|,按位异或^,按位取反,它们的运算规则是:
按位与&:两位全为1,结果为1,否则为0
按位或|:两位有一个为1,结果为1,否则为0
按位异或^:两位一个为0 ,一个为1,结果为1,否则为0
按位取反~:0->1,1->0