运算符
-
%的本质,一个公式:a % b =a - a/b * b
-
作为独立语句使用i++和++i都一样
作为表达式使用,前++:是先自增后赋值
后++:是先赋值后自增
int i=1; i=i++; 规则使用临时变量:1.temp=i; 2.i=i+1; 3.i=temp; System.out.println(i); i=1; int i=1; i=++i; 规则使用临时变量:1.i=i+1; 2.temp=i; 3.i=temp; System.out.println(i); i=2;
-
对于&&短路与而言,如果第一个条件为false,后面的条件不再判断
对于&逻辑与而言,如果第一个条件为false,后面的条件仍然会判断
开发中,基本使用的是短路与&&,效率高
-
对于短路或||而言,如果第一个条件为true,则第二个条件不会判断,最终结果为true,效率高
对于逻辑或|而言,不管第一个条件是否为true,第二个条件都要判断,效率低
开发中,基本使用||
-
赋值 运算符的运算顺序从右往左
-
赋值运算符的左边只能是变量,右边可以是变量,表达式,常量值
-
复合赋值运算符会进行类型转换
-
三元运算符 条件表达式?表达式1:表达式2;
如果条件表达式为true,运算后的结果是表达式1;
如果条件表达式为false,运算后的结果是表达式2;
表达式1和表达式2要为可以赋给接收变量的类型(或可以自动转换)
-
运算符优先级
- 只有单目运算符,赋值运算符是从右向左运算的
标识符
- Java对各种变量,方法和类等命名时使用的字符序列成为标识符
- 凡是自己可以起名字的地方都叫标识符
- 标识符的命名规则:
- 由26个英文字母大小写,0-9,_或$组成
- 数字不可以开头
- 不可以使用关键字和保留字,但能包含关键字和保留字
- java中严格区分大小写,长度无限制
- 标识符不能包含空格
- 标识符命名规范
- 包名:多单词组成时所有字母都小写
- 类名,接口名:多单词组成时使用大驼峰法
- 变量名,方法名:多单词组成时使用驼峰法
- 常量名:所有字母都大写,多单词时每个单词用下划线连接
关键字
键盘输入语句与进制
-
步骤:
- 导入该类的所在包,java.util.*
- 创建该类对象(声明变量)
- 调用里面功能
-
进制介绍:
二进制:0,1,满2进1,以0b或0B开头
十进制:0~9,满10进1
八进制:0~7,满8进1,以数字0开头表示
十六进制:09及A(10)F(15),满16进1,以0x或0X开头表示
进制的转换
- 其它进制转10进制
- 二转十:从最低位开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和
- 八转十:从最低位开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和
- 十六转十:从最低位开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和
- 十进制转其它进制
- 十转二:将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制
- 十转八:将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制
- 十转十六:将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制
- 二进制转八,十六
- 二转八:从低位开始,将二进制数每三位一组,转成对应的八进制数即可。
- 二转十六:从低位开始,将二进制数每四位一组,转成对应的十六进制数即可。
- 八,十六转二
- 八转二:将八进制数每1位,转成对应的一个3位的二进制数即可
- 十六转二:将十六进制数每1位,转成对应的一个4位的二进制数即可
原码,反码,补码
- 对于有符号的而言:
- 最左边的位十符号位:0表示整数,1表示负数
- 正数的原码,反码,补码都一样(三码合一)
- 负数的反码=它的原码符号位不变,其它位取反
- 负数的补码=它的反码+1, 负数的反码=复数的补码-1
- 0的反码,补码都是0
- java没有无符号数,Java中的书都是有符号的
- 在计算机运算时,都是以补码的方式来运算的
- 当我们看运算结果的时候,要看它的原码
位运算符
- 按位与& :两位全为1,结果为1,否则为0
- 按位或| :两位有一个为1,结果为1,否则为0
- 按位异或^ :两位一个为0,一个为1,结果为1,否则为0
- 按位取反~ :0->1 ,1->0
- 算数右移>>:低位溢出,符号位不变,并用符号位补溢出的高位 相当于除2
- 算数左移<<:符号位不变,低位补0 相当于乘2
- “>>>” 逻辑右移也叫无符号右移,运算规则是:低位溢出,高位补0
- 没有<<<符号