当前位置:网站首页>详细讲解局部变量、全局变量、静态变量三种类型
详细讲解局部变量、全局变量、静态变量三种类型
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.总结
- 全局变量和静态变量他们都是在静态存储区中分配空间的,而局部变量是存放在栈当中的,因为方法区是在栈中的。
- 全局变量、静态变量的生命期和程序生命期是一样的,在程序结束之后操作系统会回收空间。
好了 ,这一期的文章就到此结束啦,明怀我要去吃饭去啦,我们下期见啦。
边栏推荐
- MySQL InnoDB锁知识点
- Kylin
- MySQL version upgrade + data migration
- 使用npm创建并发布包时遇到的常见问题
- sqlServer2008中float类型数据与datetime类型数据互转
- Summary of c++ references and pointers
- The package name of the manifest file in the library project and the app project are not the same
- 用ES5的方式实现const
- Spark日志分析
- 支付宝支付接口沙箱环境测试以及整合到一个ssm电商项目中
猜你喜欢
STEP7主站与远程I/O组网_过路老熊_新浪博客
unsigned与signed之大白话
iomanip头文件在实战中的作用
Unable to start debugging. Unexpected GDB output from command “-environment -cd xxx“ No such file or
Audio basics and PCM to WAV
js实现输入开始时间和结束时间,输出其中包含多少个季,并且把对应年月打印出来
今天说说String相关知识点
流数据
Final and static
Unable to start debugging. Unexpected GDB output from command “-environment -cd xxx“ No such file or
随机推荐
格式化编号,不够位数的补0,例如1:0001,25:0025
xtrabackup的备份还原
Blob
权限设计=功能权限+数据权限
(转载)进程和线程的形象解释
Record a simple question with ideas at the moment of brushing leetcode - Sword finger offer 09 Implementing queues with two stacks
util. Collection and encapsulation of JS tool functions
Linking MySQL database with visual studio2015 under win10
Wireshark对IMAP抓包分析
The package name of the manifest file in the library project and the app project are not the same
MySQL InnoDB锁知识点
猕猴桃酵素的功效_过路老熊_新浪博客
SSL/TLS、对称加密和非对称加密和TLSv1.3
On the quantity control mechanism of swoole collaboration creation in production environment
Jenkins 发布PHP项目代码
聊聊swoole或者php cli 进程如何热重启
Can I upload pictures without deploying the server?
Static keyword explanation
php中使用Makefile编译protobuf协议文件
对象数组去重