Final关键字对JVM类加载器的影响.docx_第1页
Final关键字对JVM类加载器的影响.docx_第2页
Final关键字对JVM类加载器的影响.docx_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

当一个类中有声明为static final的变量,这样的变量对类的加载器有一定的影响,首先看看下面的例子。1. packagecom.bird.classLoad; 2. 3. classFinalTest 4. 5. publicstaticfinalinta=6/3; 6. 7. static 8. System.out.println(FinalTeststaticblock); 9. 10. 11. 12. publicclassTest3 13. publicstaticvoidmain(Stringargs) 14. System.out.println(FinalTest.a); 15. 16. 因为a是static final变量,且它等于6/3,在编译的时候就可以知道它的值,所以直接访问a的值不会引起FinalTest类的初始化。作为表现,也就是static静态代码快不会被加载。运行结果为1. 2在看一个例子1. packagecom.bird.classLoad; 2. 3. importjava.util.Random; 4. 5. classFinalTest4 6. 7. publicstaticfinalinta=newRandom().nextInt(100); 8. 9. static 10. System.out.println(FinalTest4staticblock); 11. 12. 13. 14. publicclassTest4 15. 16. publicstaticvoidmain(Stringargs) 17. System.out.println(FinalTest4.a); 18. 19. 这个static final变量a因为i在编译的时候无法知道它的确切的值,所以只有等到运行的时候才能知道,所以自己访问FinalTest4.a会引起FinalTest4类的初始化。也就是static静态代码快的加载。运行结果为1. FinalTest4staticblock 2. 82下面的例子是讲,当子类被主动访问的时候,会引起其直接父类的初始化1. packagecom.bird.classLoad; 2. 3. classParent 4. 5. staticinta=3; 6. 7. static 8. System.out.println(Parentstaticblock); 9. 10. 11. 12. classChildextendsParent 13. 14. staticintb=4; 15. static 16. System.out.println(Chindstaticblock); 17. 18. 19. 20. publicclassTest5 21. 22. publicstaticvoidmain(Stringargs) 23. System.out.println(Child.b); 24. 25. 26. 因为直接访问Child,b,会先初始化Parent类,然后初始化Child类。运行结果为1. Parentstaticblock 2. Chindstaticblock 3. 4如果通过子类直接访问父类的变量,只会初始化父类而不会初始化子类1. packagecom.bird.classLoad; 2. 3. classParent 4. 5. staticinta=3; 6. 7. static 8. System.out.println(Parentstaticblock); 9. 10. 11. 12. classChildextendsParent 13. 14. static 15. System.out.println(Chindstaticblock); 16. 17. 18. 19. publicclassTest5 20. 21. publicstaticvoidmain(Stringargs) 22. System.out.println(Child.a); 23. 24. 25. 直接访问Parent类的a变量,则只会直接初始化parent类,不会初始化Child类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论