???????final????????????????????????????????????????????????final??????????Java?е?String???????final??????????????final??????????÷???
?????.final??????????÷?
??????Java?У?final???????????????????????????????????????????????????????????????????????????final??????????÷???
????1.??????
????????final??????????????????????????С????????????????????????????????У???????final???????Ρ?final???е????????????????????final??????????final???е????г???????????????????final??????
?????????final?????????????????????????????????????????????л?????????????????????????????final??
????2.???η???
??????????λ?????Java????????????143???
????“???final?????????????????????????????????????????κμ?????????????壻??????????Ч??????????Java???汾?У???final????????????á?????????????????????????????????????????κ????????????????Java?汾?У?????????final??????????Щ??????“
?????????????????????????÷??????????б??????????2???????????final???
??????????private????????????????final??????

????3.???α???
???????α?????final????????????????????????????????????????????final?????????????
???????????final????????????????????????????????????????????????????????????????????????????????????????????????????????????
????????????

?????????????????У??????i??obj?????????????????
??????.???????final?????
???????????final??????????÷????????????????????final??????????????????
????1.???final?????????????????????
????????final???????????????????????????????????????????????????????????????????????????????????????????????????н??г?????????????final?????????????????????????????????
???????final??????????????????к??????????????????????
publicclassTest{
publicstaticvoidmain(String[]args){
Stringa="hello2";
finalStringb="hello";
Stringd="hello";
Stringc=b+2;
Stringe=d+2;
System.out.println((a==c));
System.out.println((a==e));
}
}
?????????????????????????????????????????????true???????????????fasle??????????final????????????????????????final????????????????????String????????????????????????????????????????????????????????????á????????????final????????????????????????????????????????????????????C?????е???滻?е???????????????δ????У????????b??final???Σ???????????????????????????????b??????????????b?滻?????????????????d????????????????????????????С???????е????????????????????????????????????????????final???????????£???????????????????????????????????δ?????????????
publicclassTest{
publicstaticvoidmain(String[]args){
Stringa="hello2";
finalStringb=getHello();
Stringc=b+2;
System.out.println((a==c));
}
publicstaticStringgetHello(){
return"hello";
}
}
??????δ???????????false??
????2.??final???ε???????????????????????
??????????????final???ε????????????????????????????????????????????????????????????????????????????????
publicclassTest{
publicstaticvoidmain(String[]args){
finalMyClassmyClass=newMyClass();
System.out.println(++myClass.i);
}
}
classMyClass{
publicinti=0;
}
??????δ?????????????????????????????????????1????????????????final???????????????????????????????????????????????????
????3.final??static
????????????????static??final??????????static??????????????????????????????????final??????????????????????????????????????
publicclassTest{
publicstaticvoidmain(String[]args){
MyClassmyClass1=newMyClass();
MyClassmyClass2=newMyClass();
System.out.println(myClass1.i);
System.out.println(myClass1.j);
System.out.println(myClass2.i);
System.out.println(myClass2.j);
}
}
classMyClass{
publicfinaldoublei=Math.random();
publicstaticdoublej=Math.random();
}
??????????δ?????????δ????????j?????????????i???????????????????????final??static?????????????
????4.????????????????????????????????final??????
?????????????μ??????????С?Java?????????е??????????????????
????5.????final??????????
??????????????????”??????????в???????????????????????????????final???????????????????????????????÷?????????“??仰????????????????????????
????????????????????????????????????????????????????final????????????????????Ч????
???????????????????
??????????δ???????????????final?????????????????и??????i???????????????changeValue??main?????е????i????????????????????java?????????????????????????????????????????????????????????????????????final???ε?????£?????????????????i????????????????i??
?????????????δ???
publicclassTest{
publicstaticvoidmain(String[]args){
MyClassmyClass=newMyClass();
StringBufferbuffer=newStringBuffer("hello");
myClass.changeValue(buffer);
System.out.println(buffer.toString());
}
}
classMyClass{
voidchangeValue(finalStringBufferbuffer){
buffer.append("world");
}
}
??????????δ?????????????helloworld???????????final???????β?????????changeValue?и??buffer???????????????????????final???????????changeValue????buffer??????????????????????????????????????????д????????????????????????????final???????????changeValue????buffer?????????????????????main?????е?buffer?????????java?????????????????????????????????????????????????κ??β??????????????????????β????????????????????β?????κ????
?????????????????????final?????????????????????????