java final ¹Ø¼ü×Ö ºÍ static Ó÷¨
ת×Ô
http://www.blogjava.net/hongzionline/archive/2007/09/19/146392.html
final ¹Ø¼ü×Ö ºÍ static Ó÷¨
Ò»¡¢final
¸ù¾Ý³ÌÐòÉÏÏÂÎÄ»·¾³£¬Java¹Ø¼ü×ÖfinalÓГÕâÊÇÎÞ·¨¸Ä±äµÄ”»òÕß“ÖÕ̬µÄ”º¬Ò壬Ëü¿ÉÒÔÐÞÊηdzéÏóÀà¡¢·Ç³éÏóÀà³ÉÔ±·½·¨ºÍ±äÁ¿¡£Äã¿ÉÄܳöÓÚÁ½ÖÖÀí½â¶øÐèÒª×èÖ¹¸Ä±ä£ºÉè¼Æ»òЧÂÊ¡£
finalÀ಻Äܱ»¼Ì³Ð£¬Ã»ÓÐ×ÓÀ࣬finalÀàÖеķ½·¨Ä¬ÈÏÊÇfinalµÄ¡£
final·½·¨²»Äܱ»×ÓÀàµÄ·½·¨¸²¸Ç£¬µ«¿ÉÒÔ±»¼Ì³Ð¡£
final³ÉÔ±±äÁ¿±íʾ³£Á¿£¬Ö»Äܱ»¸³ÖµÒ»´Î£¬¸³ÖµºóÖµ²»Ôٸı䡣
final²»ÄÜÓÃÓÚÐÞÊι¹Ôì·½·¨¡£
×¢Ò⣺¸¸ÀàµÄprivate³ÉÔ±·½·¨ÊDz»Äܱ»×ÓÀà·½·¨¸²¸ÇµÄ£¬Òò´ËprivateÀàÐ͵ķ½·¨Ä¬ÈÏÊÇfinalÀàÐ͵ġ£
1¡¢finalÀà
finalÀ಻Äܱ»¼Ì³Ð£¬Òò´ËfinalÀàµÄ³ÉÔ±·½·¨Ã»Óлú»á±»¸²¸Ç£¬Ä¬È϶¼ÊÇfinalµÄ¡£ÔÚÉè¼ÆÀàʱºò£¬Èç¹ûÕâ¸öÀ಻ÐèÒªÓÐ×ÓÀ࣬ÀàµÄʵÏÖ
ϸ½Ú²»ÔÊÐí¸Ä±ä£¬²¢ÇÒÈ·ÐÅÕâ¸öÀ಻»áÔØ±»À©Õ¹£¬ÄÇô¾ÍÉè¼ÆÎªfinalÀà¡£
2¡¢final·½·¨
Èç¹ûÒ»¸öÀ಻ÔÊÐíÆä×ÓÀา¸Çij¸ö·½·¨£¬Ôò¿ÉÒÔ°ÑÕâ¸ö·½·¨ÉùÃ÷Ϊfinal·½·¨¡£
ʹÓÃfinal·½·¨µÄÔÒòÓжþ£º
µÚÒ»¡¢°Ñ·½·¨Ëø¶¨£¬·ÀÖ¹Èκμ̳ÐÀàÐÞ¸ÄËüµÄÒâÒåºÍʵÏÖ¡£
µÚ¶þ¡¢¸ßЧ¡£±àÒëÆ÷ÔÚÓöµ½µ÷ÓÃfinal·½·¨Ê±ºò»áתÈëÄÚǶ»úÖÆ£¬´ó´óÌá¸ßÖ´ÐÐЧÂÊ¡£
ÀýÈ磺
public class Test1 {
public static void main(String[] args) {
// TODO ×Ô¶¯Éú³É·½·¨´æ¸ù
}
public void f1() {
System.out.println("f1");
}
//ÎÞ·¨±»×ÓÀา¸ÇµÄ·½·¨
public final void f2() {
System.out.println("f2");
}
public void f3() {
System.out.println("f3");
}
private void f4() {
System.out.println("f4");
}
}
public class Test2 extends Test1 {
public void f1(){
System.out.println("Test1¸¸Àà·½·¨f1±»¸²¸Ç!");
}
public static void main(String[] args) {
Test2 t=new Test2();
t.f1();
t.f2(); //µ÷ÓôӸ¸Àà¼Ì³Ð¹ýÀ´µÄfinal·½·¨
t.f3(); //µ÷ÓôӸ¸Àà¼Ì³Ð¹ýÀ´µÄ·½·¨
//t.f4(); //µ÷ÓÃʧ°Ü£¬ÎÞ·¨´Ó¸¸Àà¼Ì³Ð»ñµÃ
}
}
3¡¢final±äÁ¿£¨³£Á¿£©
ÓÃfinalÐÞÊεijÉÔ±±äÁ¿±íʾ³£Á¿£¬ÖµÒ»µ©¸ø¶¨¾ÍÎÞ·¨¸Ä±ä£¡
finalÐÞÊεıäÁ¿ÓÐÈýÖÖ£º¾²Ì¬±äÁ¿¡¢ÊµÀý±äÁ¿ºÍ¾Ö²¿±äÁ¿£¬·Ö±ð±íʾÈýÖÖÀàÐ͵ij£Á¿¡£
´ÓÏÂÃæµÄÀý×ÓÖпÉÒÔ¿´³ö£¬Ò»µ©¸øfinal±äÁ¿³õÖµº
Ïà¹ØÎĵµ£º
JAVAÐòÁл¯µÄÁ½ÖÖ·½Ê½
//´ó¼Ò¶¼ÖªµÀSerializableÊÇÒ»¸ömark interface,¸æËßJVMÕâ¸ö¶ÔÏó¿ÉÒÔ±»×ª»»³É¶þ½øÖÆÁ÷À´´«Êä.
//Serializable ÔÚÎÒÃÇʵÏÖÕâ¸ö½Ó¿ÚµÄʱºò,ÎÒÃÇ¿ÉÒÔʹÓÃ4¸ö˽Óз½·¨À´¿ØÖÆÐòÁл¯µÄ¹ý³Ì:
//ÎÒÃÇÀ´¿´Ò»¸öÀý×Ó:
public class FooImpl implements java.io.Serializable
{
pr ......
ÕâЩ¶¼ÊÇÄúÊé¼ÜÉϱر¸µÄÊéºÍÓ¦¸Ã¾³£Ê¹ÓÃµÄ Web Á´½Ó¡£Ê±¼äÊÇÒ»ÏîÖØÒªµÄ×ÊÔ´£¬±¾ÎİïÄú»Ø±ÜÄÇЩ·ÖÐĵÄÊÂÇ飬°Ñʱ¼äרעÓÚ×îÓÐÒæÓÚÄú×÷ΪJava ÓïÑÔ³ÌÐòÔ±Ö°ÒµÉúÑĵÄÐÅÏ¢Ô´¡£¾¡¹ÜÓжàÉÙ³ÌÐòÔ±¾ÍÓжàÉÙËûÃÇ×îϲ»¶µÄ²Î¿¼×ÊÁÏ£¬µ«±¾ÎÄÊÕ¼¯µÄÕâЩ¶¼ÊÇÓÅÖÐÑ¡ÓÅ£¬À´Ô´ÓÚÎÒÊé¼ÜÉϵÄ˽¼ÒÕ䲨ºÍÐí¶à Java ר¼ÒµÄÍÆ¼ö¡£
ÎÒ¿¼ÂÇÁËÁ½ÖÖ×é ......
¹ØÓÚ23ÖÖÉè¼ÆÄ£Ê½µÄÓÐȤ¼û½â
×÷ÕßÒÔÇáËɵÄÓïÑÔ±ÈÓ÷ÁËjavaµÄ23ÖÖģʽ£¬ÓÐºÜºÃµÄÆô·¢×÷Óá£
´´½¨ÐÍģʽ
1¡¢FACTORY—×·MMÉÙ²»ÁËÇë³Ô·¹ÁË£¬Âóµ±À͵靈áºÍ¿ÏµÂ»ù ......
1¡¢Óï·¨£º±ØÐë±È½ÏÊìϤ£¬ÔÚд´úÂëµÄʱºòIDEµÄ±à¼Æ÷¶ÔijһÐб¨´íÓ¦¸ÃÄܹ»¸ù¾Ý±¨´íÐÅÏ¢ÖªµÀÊÇʲôÑùµÄÓï·¨´íÎó²¢ÇÒÖªµÀÈκÎÐÞÕý¡£
2¡¢ÃüÁ±ØÐëÊìϤJDK´øµÄһЩ³£ÓÃÃüÁî¼°Æä³£ÓÃÑ¡ÏÃüÁîÖÁÉÙÐèÒªÊìϤ£ºappletviewer¡¢ HtmlConverter¡¢jar¡¢
java¡¢javac¡¢javadoc¡¢javap¡¢javaw¡¢native2ascii¡¢seria ......
1.
superÊǵ÷Óø¸ÀàµÄ¹¹Ô캯Êý
2.
thisµ÷ÓõÄͬÀàµÄ¹¹Ô캯Êý.
3.
3.1
synchronized¹Ø¼ü×ÖµÄ×÷ÓÃÓòÓжþÖÖ
3.1.1
ÊÇij¸ö¶ÔÏóʵÀýÄÚ£¬synchronized aMethod(){}¿ÉÒÔ·ÀÖ¹¶à¸öÏß³Ìͬʱ·ÃÎÊÕâ¸ö¶ÔÏóµÄsynchronized·½·¨£¨Èç¹ûÒ»¸ö¶ÔÏóÓжà¸ösynchronized·½·¨£¬Ö»ÒªÒ»¸öÏ̷߳ÃÎÊÁËÆäÖеÄÒ»¸ösynchronized·½·¨£¬ÆäËüÏ̲߳»ÄÜ ......