网站首页 > 文章精选 正文
在类中声明的变量为类的成员变量,在方法、构造方法和语句块之外;而在方法、构造方法或者语句块中明的变量和方法的参数则称为局部变量。
区别:静态变量在内存中只有一个拷贝,运行时Java虚拟机只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配,可以直接通过类名访问静态变量。而实例变量则可以在内存中存在多个拷贝,互不影响,每创建一个实例,就会为实例变量分配一次内存。
范围:成员变量和局部变量的区别在于其有效范围不同,成员变量在整个类内都有效,而局部变量只在定义它的成员方法内才有效,静态变量在整个程序运行期间都存在,直到程序运行结束。
当局部变量和成员变量的名字相同时,成员变量就会被隐藏,这时如果要使用成员变量,则必须使用关键字this。
▼局部变量是在栈中,成员变量是在堆中。
▼静态变量与类相关,又称类变量,通过类名可以直接调用静态变量,实例变量(成员变量)需实例化后才能使用,即产生该类对象。
▼常量通常存储一些固定的值,而静态变量通常用于存储可变的数据,静态变量的值可以在运行时改变,如果一个线程修改了静态变量的值,那么其他线程在访问该静态变量时调用到的是修改后的数据。
package liu;
public class Test {
private static int stInt =5;
private int com = 6;
public Test() {
stInt++;
com++;
System.out.println("stInt="+stInt+",com="+com);
}
public static void main(String[] args) {
Test test = new Test();
Test test1 = new Test();
Test test2 = new Test();
}
}
结果:
stInt=6,com=7
stInt=7,com=7
stInt=8,com=7
猜你喜欢
- 2025-05-02 利用Axure+js创建可配置地图页面(axure做地图)
- 2025-05-02 JVM性能调优(1)——JVM内存模型和类加载运行机制
- 2025-05-02 C++变量作用域(c++变量的作用)
- 2025-05-02 C++|带析构语义的类的异常处理:抛出异常、栈展开、自动析构
- 2025-05-02 C++_程序内存模型_内存四区_代码区_全局区
- 2025-05-02 「设计模式」10分钟学懂UML类图(uml类图设计模式有哪些)
- 2025-05-02 罗克韦尔(AB)PLC讲解,用户自定义指令(AOI)详解
- 2025-05-02 内部疯传,22个必考C++面试知识点总结(附答案解析)
- 2025-05-02 从零开始学习C语言丨全局和局部的作用域、变量
- 2025-05-02 嵌入式C语言基础编程—5年程序员给你讲函数,你真的懂函数吗?
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)