一、分类
1.算数运算符
2.逻辑运算符
3.关系运算符(比较运算符)
4.赋值运算符
5.三元运算符
6.位运算符(二进制运算符)
二、算数运算符
1.自增运算
前:先运算后面再取值
后:先取值后面再运算
原理解释:java程序在被处理的过程中,所有的运算符都是被定义好的,对于所有的运算符,其实可以看作是一个函数,这些函数都是有返回值的,就是这些返回值的区别。对于++i,先将i+1,然后再将i返回;而i++则是将i先返回给需要赋值的数,然后再i=i+1
对于java程序运算符的理解,其实都是调用了一个又一个定义好的函数了。
这里要加上一个特别的例子:int i=1;
i=++i;这是一个特例,记住不用理解
快捷键 ctrl+/快速注释 ctrl+/取消注释
2.模运算
%就是叫做模运算
它的本质是a%b=a-a/b*b
三、关系运算符
1.返回值都是boolean类型的
特:instanceof :用于检查输入的参数是否为类的对象。
(”hsp“ instanceof string)返回结果为true
写法:boolean flag=a>b 可以这样写
四、逻辑运算符
1) a&b : & 叫逻辑与:规则:当 a 和 b 同时为 true ,则结果为 true, 否则为 false
2) a&&b : && 叫短路与:规则:当 a 和 b 同时为 true ,则结果为 true,否则为 false
3) a|b : | 叫逻辑或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false
4) a||b : || 叫短路或,规则:当 a 和 b ,有一个为 true ,则结果为 true,否则为 false
5) !a : 叫取反,或者非运算。当 a 为 true, 则结果为 false, 当 a 为 false 是,结果为 true
6) a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false
短路类型和逻辑类型的区别:短路类型判断完第一个语句如果条件已经能决定了输出值时,就不会进行对第二个语句的判断。,效率更高。
取反 !正确的返回值为错误,错误的返回值为正确,反正就是只对true或者flase来进行操作的
逻辑异或:相同就是false,不同就是true
2.运算符的运算顺序
从右往左:例子a=a+b,解释:b加上a然后赋值给a
复合赋值语句会自动进行类型转换。
byte b=2;b+=3;b++
b=(byte)(b+3)
五。三元运算符
条件表达式?表达式1;表达式2;
假如条件为t,则运行表达式1
假如条件为假,那么就运行表达式2
六,java中的表示符的标准和准则
1.java中的标识符只能用数字和字母已经_和$来组成·
2.首字母不能是数字
3.不能含有关键字和保留字
4.java中严格区分大小写
5.在变量名的中间不能有空格
七。标识符命名规范,进阶版
1) 包名:多单词组成时所有字母都小写:aaa.bbb.ccc //比如 com.hsp.crm
2) 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz [大驼峰] 比如: TankShotGame
3) 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz [小 驼峰, 简称 驼峰法] 比如: tankShotGame
4) 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ 比如 :定义一个所得税率 TAX_RATE 5) 后面我们学习到 类,包,接口,等时,我们的命名规范要这样遵守,更加详细的看文档.
八。关键字和保留字
关键字就是java程序中已经被定义为具有特定意义的单词,而保留字是java创作者保留用来作为后面版本更新所使用新词的一些单词,同样不能使用,这是因为java程序是要不断的迭代的,所以在使用保留字可能会在后续的java版本中报错
九.键盘输入语句
首先,我们假如要在java程序中使用键盘输入语句,那么我们便需要定义一个scanner的类,作为一个扫描器,用来得到java程序中用键盘输入的值。
1.先必须引入一个scanner类所在的包(在java中所有的函数,都是存放在一个又一个的java包中,当我们要使用其中的类以及他们的方法时,我们必须要先引入一些包,但是,也有几个特例,为了使用的方便,直接在jajva程序中隐士定义了 )
2.步骤
import java.util.Scanner(提前引入)
Scanner myScanner=new Scanner(System.in)
然后就可以使用Scanner里面的类了
其中char的类的使用方法比较特殊
String name = myScanner.next()
int age = myScanner.nextInt()
double sal = myScanner.nextDouble()
假如是char类型的数据的读入
写法为char a=myScanner.next().charAt(0); //字符读入是从0开始读入的
最后要加上myScanner.close(); //关闭输入流,这样子可以起到节省空间的作用
十、位运算
1.首先,位运算的操作对象是数据的二进制码,大部分的计算机中的数据都是使用二进制码来使用的,也就是我们常说的原码反码和补码,在计算机的不用存放部件上,是哦那个的码的类别也是不一样的,对于位运算,我们一般是操作补码
2.原码,反码,和补码
原码:第一位为符号位,后面为数据所对应的二进制的数值
对于正数:原码、反码和补码都是一样的
对于负数:反码等于原码符号位不变,后面的全部都按位取反
补码是等于反码加一
java没有无符号数
0的原码,反码和补码都是0
在计算机处理数据运算时,使用的都是补码
但是我们在观察处理结果时,看的嗾使结果的原码
所以我们在分析位运算的结果时,需要将补码进行运算,并且最后转化为原码,给计算机读取输出到屏幕上
十一、七种位运算符
1.按位与&:两位全是1,结果位1,否则为0.
2.按位或|:两位中有一个是,结果为1,否则为0
3、按位异或^:两位中一个为1,一个为0,结果为1否则为0
4.按位取反~:0->1,1->0
例子
2&3=2,
5.算术右移>>:低位溢出,符号位不变,并用符号位补全溢出的高位
6、算术左移<<:符号位不变,低位补全0,向左移动
7.>>>逻辑右移,也叫无符号右移,运算规则是:低位溢出,高位补零。符号位,可能会该改变。
特别说明:没有<<<符号,也就是只有逻辑右移,没有逻辑左移符号