1.局部变量:
1)在方法中定义,作用域在方法内;
2)在用之前必须被初始化,不能默认初始化;
3)与实例变量相同时,局部变量在方法中起作用;
4)类的每个方法都可以直接访问其实力变量;
5)类的方法中传的参数也是局部变量;
2.实例变量
1)定义于类中、方法外;
2)自动初始化;
3)其数据类型默认值如下:
byte:0 short:0 int:0 long:0L float:0.0f double:0.0d char:(Unicode)'\u0000' boolean:false
引用类型:null
3.操作符
1)%取余 这是双目操作符 当两个操作数符号不相同时 结果的正负与第一个操作数的符号相同
2)a=a+b和a+=b 是否相同
a)数据类型相同时两者相同;
b)数据类型不相同时,会发生隐式转换 ,或者类型转换错误 eg:
int a = 10;double d = 1.23;
a = a+d ;错误 a和d相加 a会自动隐式转换为double型 但结果为double 类型不能隐式转换为int
a +=d; 正确 可以自动转换为int类型 结果为11
3)instanceof 双目操作符 左为引用 右为类类型 判断对象是否是类或者其子类的对象 是返回true 否则为false
4.移位操作符
1)>>右移 <<左移 >>>右移
2)int类型 5>>2=1 即5-2×2=1 右移时 低位去掉 高位正补零负补1 对于>>>也是右移 只是无论正负都补0
00000000 00000000 00000101
移位后:00000000 00000000 00000000 00000001
int类型 5<<2=20 即5×2×2=20 左移时 高位去掉 低位无论正负都补0
移位后:00000000 00000000 00000000 00010100
3)位操作符:&与 | 或 ~取反 逻辑操作符:&&与 ||或 也叫短路操作符
4)&与&&区别:
都可以做逻辑与的运算符,当表达式结果两边为true时,整个结果为true 否则为false
&&有短路功能,如果第一个为false 不判断第二个 ||与之相同
&还可以是位运算符,表示按位与操作,通常使用0x0f与正数进行&操作 获取其最低4个bit
5)把某一位清0 用0与这一位做与操作 其他位全为1 要得到这样一个 指定位为0 其他位全为1的数 只需要把1左移
指定位在整体取反即可:
1左移4位:0001 0000 再取反:11101111 即第四位为0其他全为1
6)打印一个2进制数的方法:
a)除2取余数;
b)将这个数循环右移32次 每次与1作与运算 输出
7)若将第n位置1 只需要把1左移n-1位 与这个数做或运算
8)int a = 10;int b = 20;double c = 1.23;
a>b?c:a 结果为10.0 此操作符会发生类型转换
9)0x0001<<2+3的结果 ;
相当于0x0001<<(2+3)=32
5.if(){} ()中最后结果只能是布尔表达式 不同于C/C++
6.switch(){} ()中可放的数据类型有:
byte short int char String enum 共6种