& 位与,两位同时是1,结果是1
| 位或,两位同时是0,结果是0
^ 异或,相同是0,不同是1
对同一个值异或两次,得到原值
~ 取反,0变1,1变0
>> 带符号右移位
符号位是0,左侧补0;
符号位是1,左侧补1。
>>> 无符号右移位
左侧补0
<< 左移位
右侧补0
++
–
自增、自减
int a = 10;
System.out.println(a++);// a自增变成11,打印a的原值10
System.out.println(++a);// a自增变成12,打印a的新值12
int a = 10;
a = a++;//a自增变成11,再给a变量赋a的原值10
? :
三项运算符
第一项 ? 第二项 : 第三项
第一项是真,运算第二项
第一项是假,运算第三项
图例 运用方法
= 赋值运算
+=
-=
%=
>>=
…
int a = 10;
a += 2; // a = a + 2;
* 赋值运算与运算符连用,
会自动转型
byte a = 10;
a = (byte) (a + 2);
a += 2;
图例 运用方法
变量
局部变量
在方法中,或局部代码块中*) 必须手动初始化(即第一次赋值)
int a;
System.out.println(a);//错,没有初始化
*) 局部变量作用范围:变量定义的代码块
*) 在作用范围内,不能重复定义void a() { int i = 10; if(...) { //int i = 100;//错,重复定义 int j = 100; i++; } int j = 1000; j++; } void b() { System.out.println(i); }
成员变量
在类中*) 有默认值,不需要手动初始化 *) 在所有方法中都可以调用, 在其他类中也可以调用可见的成员变量 *) 局部变量可以与成员变量同名
方法
- 命名的代码块
可以接收参数
void f(int x) { } void f(double x, String y) { }
可以有返回值
*) 需要在方法名前面定义返回类型 int f() { } double f() { }
方法不返回值,用 void(空)
void f() { }
return
*) 用来向调用位置返回值 return 3.14; return result; *) **在不返回值的方法中**, **用来结束一个方法** return;
流程控制
if-else if-else
if(条件) {
}
if(条件) {
} else {
}
if(条件1) {
} else if(条件2) {
} else if(条件3) {
} else {
}
练习题,图例:
switch-case-default
* 只能判断 byte,short,char,int, 在1.7版本中还可以字符串类型,这是在1.7版本中的新特性
* 当满足一个case,会从这个 case
向后,无条件执行每个 case,直到结束,
或遇到 break 中断执行(跳出switch)
* default 所有 case 都不成立,
可以执行 default
switch(a) {
case 56:
asdfa
sdfasd
fasdfas
dfas
case 9:
asdfasd
break;// 中断
case 837:
asdfa
sdfasdfasd
case 4:
default:
asdfasdsad
}
case 的常量值,必须互不相等。
练习图例: