2020-04-09
public void test1(){
//正确写法
final int a;
a=10;
//正确写法
final int b=10;
//定义后不能再次进行赋值
a=10;//错误
}
//tips:final如果修饰一个对象,那么该对象的引用的地址不能改变,但是对象的属性可以改变。
//正确写法,即在属性定义处赋值
class Student{
private final int a=10;
}
//正确写法,当在属性处没有赋值时,必须在该类的所有构造方法中进行赋值
class Student2{
private final int a;
public Student2(){
a=10;
}
public Student2(int a){
this.a=a;
}
}
//tips:不能既在属性定义处赋值,又在类的构造方法中赋值
2020-04-09
- 临界资源:某段时间内只能允许一个进程使用的资源。
- 临界区:进程中访问临界资源的代码段。
进程P1
tmp1=s;
tmp1=tmp1+1;
s=tmp1;
进程P2
tmp2=s;
tmp2=tmp2-1;
s=tmp2;
当并发执行进程P1和进程P2时,可能会造成s的结果无法预测
此时,我们可以将s设置为临界资源,让进程P1和P2互斥的访问s,P1和P2的代码就叫做临界区。