当前位置:网站首页>详细讲解局部变量、全局变量、静态变量三种类型

详细讲解局部变量、全局变量、静态变量三种类型

2022-06-25 22:10:00 小鱼爱吃菜

做比不做好,完成比拖延好
今天我要来讲的是局部变量这方面的知识,因为今天刚刚翻到这方面的内容,恰巧又搜集了一下资料,所以就想着来讲讲。

1.局部变量

首先,我要说的是,局部变量是在一个函数中定义的,它只在这个函数中是有效的,比如我们来看这样的一个例子

public class jichu {
    
      void a(){
    
          String b="刘三";
      }
    public static void main(String[] args) {
    
        jichu b1=new jichu();
        b1.a();
        System.out.println(b);
    }
}

在这里面,那么我再来给大家看一下截图
在这里插入图片描述
这是什么原因导致的呢,就是因为我在方法体里面定义的是局部变量,所以这个时候是不能在全局里面进行一个使用的,这下你应该能理解局部变量了吧?

2.全局变量和静态变量

在这里插入图片描述
这个指的就是通过静态变量符static来进行的设置,那么这里大家可能会思考了,我记得全局变量也是在方法体之外进行的操作,那么你能讲讲二者的区别吗?

全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,
静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,
即只在定义该变量的源文件内有效,
在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。从以上分析可以看出,
把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。

在这当中,其实静态变量指的就是两种就是在方法体里面进行的设置,还有一个就是在整个类当中都可以用。

1.静态变量的作用范围要看静态变量的位置,如果在函数里,则就是静态局部变量,作用范围就是这个函数;
2.静态全局变量,只在本文件可以用,虽然整个程序包含多个文件, 但静态全局变量只能用在定义它的那个文件里,却不能用在程序中的其他文件里。它是定义存储因型为静态型的外部变量,其作用域是从定义点到程序结束,所不同的是存储类型决定了存储地点,静态型变量是存放在内存的数据区中的,
它们在程序开始运行前就分配了固定的字节, 在程序运行过程中被分配的字节大小是不改变的,只有程序运行结束后,才释放所占用的内存。

3.总结

  1. 全局变量和静态变量他们都是在静态存储区中分配空间的,而局部变量是存放在栈当中的,因为方法区是在栈中的。
  2. 全局变量、静态变量的生命期和程序生命期是一样的,在程序结束之后操作系统会回收空间。

好了 ,这一期的文章就到此结束啦,明怀我要去吃饭去啦,我们下期见啦。

原网站

版权声明
本文为[小鱼爱吃菜]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_46741750/article/details/125462898