zoukankan      html  css  js  c++  java
  • java static块的执行次数

    比较有意思的一段代码,可以先运行看效果再将注释取消后看运行效果,上代码

    Java代码 复制代码 收藏代码
    1. /**
    2. *
    3. * 每个对象实例化的时候,都要路过static方法
    4. * 但是编译器会保证static快的执行是原子的,即便是多线程过来也要一个个执行
    5. * 只不过,只有第一个实例动作的时候static快内的代码被执行
    6. * 其他实例只是“路过”
    7. * 即,每个实例都要走到static块,但是static块只会执行一次,
    8. * 是通过调用该类的 client方法导致的,该方法只在类被加载的时候JVM调用
    9. * @author liuinsect
    10. *
    11. */
    12. public class StaticBlockTest implements Runnable{
    13. static{
    14. if(true){
    15. System.out.println("test");
    16. // while(true){
    17. //
    18. // }
    19. }
    20. }
    21. @Override
    22. public void run() {
    23. System.out.println("run");
    24. }
    25. /**
    26. * @author liuinsect
    27. * @date 2013-2-7
    28. * @param args
    29. */
    30. public static void main(String[] args) {
    31. StaticBlockTest s = new StaticBlockTest();
    32. StaticBlockTest s1 = new StaticBlockTest();
    33. // StaticBlockTest s2 = new StaticBlockTest();
    34. // StaticBlockTest s3 = new StaticBlockTest();
    35. // StaticBlockTest s4 = new StaticBlockTest();
    36. // StaticBlockTest s5 = new StaticBlockTest();
    37. Thread t1 = new Thread(s);
    38. Thread t2 = new Thread(s1);
    39. t1.start();
    40. t2.start();
    41. }
    42. }  
  • 相关阅读:
    随笔
    3.1作业
    关于JavaDate数据返回到前端变数字的问题(并引申到前后端时间的传输)
    utf-8转换为base64
    base64转换为utf-8
    Java Web基础——jsp调用动态界面
    Java Web基础——JSP指令标记
    2020软件工程最后一次作业
    软件工程第二次结对作业
    软件工程第三次作业
  • 原文地址:https://www.cnblogs.com/bjanzhuo/p/3576084.html
Copyright © 2011-2022 走看看