一.变量与常量
1. 常量和字面量
常量:整个生命周期之不可更改
字面量:同上,并且不能重复使用
2.声明
变量:可以更改的数据,方便对数据进行操作,并且可以对空间进行复用
变量声明: 数据类型 变量名=值;eg:int i1=10;
3.变量分类
变量分类:
局部变量:在方法中声明的变量是局部变量
静态变量:在类体中使用static修饰的变量
成员变量:在类体中没有static修饰的变量
4.变量调用
变量的调用:
局部变量:在方法中直接写变量名调用即可,在方法外调用不了
静态变量:类名.静态变量名,当前类中,类名可以省略
成员变量:对象.成员变量名
作用域:变量的使用范围,变量声名处向上走,碰到的第一个大括号,向下穿透
5.变量默认值
默认值,局部变量没有默认值,不赋值就不能用,用了就报错
静态变量和成员变量有默认值
整数:0;
小数:0.0;
布尔型:false;
字符型:\u0000;
引用类型:null
二.运算符
1.算术运算符
算数运算符
+ - * / %(取余)
++ --
++:自身+1,把值去除 +1后 再放回去(会发生赋值)
一元(单目)优先级大于二元(双目)
一元运算 就是值有一个操作数 比如i++;
二元 就是两个操作数 比如a*b
2.关系运算符
关系运算符:结果是布尔类型 只有true和false
> ,< ,>=,<=,
==: 判断是否相等
!=:判断不相等
3.逻辑运算符
3.1
& : 位与,两边都为真,结果才为真
| : 位或,一边为真,结果就为真
! : 位非,取反,真就是假,假就是真 !true=false
^ : 位异或 ,两边不一样,结果才为真, true^ture=false, true^false=true
~ : 按位非,按数值的进制位,进行取反
~2 : 2 的二进制 0 000 0010 每位取反 , 1 变0 , 0 变1
1 111 1101 -> 反码 -> 1 111 1100 -> 源码 -> 1 000 0011
3.2
&& :且,短路与,两边都为真结果才为真,假如第一个就为假,第二个就不执行了,直接返回false;
|| :或,短路或,两边有一个真,结果才为真,假如第一个就为真,第二个判断就不执行,直接放回true。
4.唯一运算符
位移运算
<<:左位移运算(符号位不变 ) 转换为二进制,向左移位,最右边补0;
x<<y=x*2^y;
左移一次 等于 乘以2;
>>: 右移运算(符号位不变),转换为二进制,向右移位,最左补0,如果为负数,最左补1;
x >> y = x/2^y
右移一次 等于 除2
常见面试题 : 如何快速计算 2的3次方
2<<2
5.赋值运算符
赋值运算 = +=,*=,/=,-=,%= -=:左边减去右边结果赋值给左边 i-=2 等价于i=i-2;