java吧 关注:1,185,150贴子:12,587,447
  • 19回复贴,共1

小白求助,问下问题

只看楼主收藏回复

java static 变量,多线程同时第一次访问,static变量会被初始化几次


来自iPhone客户端1楼2023-01-02 23:29回复
    例如:
    public static Student s = new Student
    当多线程同一时刻第一次访问这个static变量的时候, s变量会执行n次初始化过程?


    来自iPhone客户端2楼2023-01-02 23:29
    收起回复
      当然是一次,因为public static Student s = new Student这个语句只会执行一次。


      IP属地:黑龙江3楼2023-01-02 23:41
      收起回复
        比如说我static 修饰了一个集合,第一个线程循环的往集合里添加元素,每次休眠1秒第二个线程循环判断这个集合是否为空,如果不为空就删除一个元素,休眠2s第二个线程一直不进去


        来自iPhone客户端4楼2023-01-02 23:43
        收起回复
          一次,类的初始化是加锁的,只会有一个线程执行


          IP属地:浙江来自Android客户端5楼2023-01-03 00:48
          回复
            必须只有一次


            来自Android客户端6楼2023-01-03 08:59
            回复
              static也叫类变量,每个class文件只会加载一次。看看jvm对你的疑问有帮助


              来自Android客户端7楼2023-01-03 12:13
              收起回复
                一次


                来自Android客户端8楼2023-01-03 14:41
                回复
                  你可以写代码试试


                  来自Android客户端9楼2023-01-03 14:52
                  回复
                    静态在方法区的,属于线程共享,只会初始化一次


                    来自Android客户端10楼2023-01-03 15:09
                    回复
                      类型信息和static变量在元空间,第一次类加载执行一次


                      来自Android客户端12楼2023-01-03 17:49
                      回复
                        你去找那个类加载器的源码,里面会有注释说明。


                        IP属地:北京来自Android客户端14楼2023-01-04 17:47
                        回复