关于全局变量与静态变量的问题

关于全局变量与静态变量的问题

问题描述:

我想请问一下各位大佬,全局变量是不是在程序运行到终止的过程只初始化一次??
因为之前在百度百科上看到有位大佬说全局变量也是静态变量,毕竟全局变量也是存储在静态存储区的嘛。。
求各位大佬解释一下吧。。图片说明
谢谢,好人一生平安

看你用的是什么编程语言,c++的静态变量和java的静态变量根本不是一回事。
如果java用静态变量,属于某个类,那么除非你代码中有调用,否则这个类一直不会初始化。
你代码中修改全局变量,又会引起额外的初始化,所以说只初始化1次肯定不确切。

全局变量确切的说不是static变量,static全局变量只初使化一次

java中的全局变量和静态变量的关系,c++没学过
我认为无论是全局变量还是静态变量其实都是在其加载的时候进行初始化一次,

静态变量是在其所在的类本身加载之后就已经加载存在于内存中方法区的静态区中进行了初始化,
而全局变量只有当其所在的类被实例化(new 了一个实例)完成之后才会存在于内存中的堆内存中进行初始化,

全局变量和静态变量是不一样的,静态变量是所有对象共享,而全局变量只是对象内共享,

也就是每创建一个对象全局变量就会被初始化一次
但是一个类中,无论创建多少个对象,静态变量都只初始化一次

个人理解,错误的地方请点评