c语言staticint的值会变吗static变量什么时候初始化?-创新互联

static变量什么时候初始化?只执行一次c语言static int的值会
变吗 static变量什么时候初始化?

复制:

成都创新互联公司专注于花山网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供花山营销型网站建设,花山网站制作、花山网页设计、花山网站官网定制、小程序设计服务,打造花山网络公司原创品牌,更为您提供花山网站排名全网营销落地服务。

可以添加到学生类的构造函数中,例如:

运行时会发现只打印一次

大致原理:

静态变量是类变量,第一次使用类时只初始化一次。类装入器中会有一个锁,以防止类被多次初始化。静态字段和静态代码块只执行一次。从编译器的角度来看,编译时编译器会按顺序收集静态字段和静态代码块,然后将其放入生成的<cinit>特殊方法中,初始化类时会调用<cinit>方法。

应用程序:

对于您的问题:

在前一个线程初始化之后,判断它是否已成功初始化,并直接获取结果

您的问题有点有趣。前一个线程的初始化可以说是取锁,然后执行锁代码。当锁退出时,锁代码的结果将完全同步,这是锁的一个特性(比如内存可见性)。然后下一个结果就是正常结果

静态变量。静态变量之所以是静态的,是因为它的地址在程序的整个生命周期中都是静态的。也就是说,整个程序只保留一个副本。static关键字允许它在不同的函数调用之间保持其值。如果静态变量的值在被访问后发生变化,它将保留新值。如果再次访问该变量,它将保持最新的值classA{公共:私人:}inta::I=1//必须这样初始化

首先,只能静态添加成员变量。

何时添加?

如果当前类的任何对象需要共享此成员,将添加该对象。否则,将不添加。

JVM加载静态成员时,加载时间比非静态成员早。

2.在整个JVM生命周期中,静态成员总是只加载一次,这也是单例模式的根源。

3.初始化静态成员后,它将始终被类对象引用,这意味着它的地址永远不会被GC回收。因此,建议不要定义太多。

4.静态成员总是将引用保存在方法区域的静态区域中,因此引用必须由多个线程共享。因此,在编写静态成员时,应特别注意线程安全。

以上是我的浅见。如果有任何误解,请互相讨论。

网站栏目:c语言staticint的值会变吗static变量什么时候初始化?-创新互联
文章链接:https://www.cdcxhl.com/article40/dsdoeo.html

成都网站建设公司_创新互联,为您提供做网站外贸网站建设搜索引擎优化定制网站小程序开发响应式网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站网页设计