静态变量和实例变量的区别?

静态变量和实例变量的区别

语法定义上的区别:
  • 静态变量:在声明变量时使用 static 关键字。
  • 实例变量:不使用 static 关键字。
程序运行时的区别:
  • 静态变量

    • 属于类本身,不属于任何实例对象。
    • 当类被加载时,静态变量就会被分配空间,可以直接通过类名来引用,不需要创建实例对象。
    • 无论创建多少个实例对象,静态变量在内存中只有一个副本。
  • 实例变量

    • 属于某个实例对象,是对象的属性。
    • 当实例对象被创建时,实例变量才会被分配空间,每个实例对象都有自己的一份实例变量。
    • 只能通过实例对象来访问实例变量。

示例代码

下面是一个简单的 Java 程序,演示了静态变量和实例变量的区别:

public class VariantTest {// 静态变量,属于类public static int staticVar = 0;// 实例变量,属于对象public int instanceVar = 0;// 构造方法public VariantTest() {staticVar++;instanceVar++;System.out.println("staticVar = " + staticVar + ", instanceVar = " + instanceVar);}public static void main(String[] args) {// 创建第一个对象VariantTest obj1 = new VariantTest();// 创建第二个对象VariantTest obj2 = new VariantTest();// 创建第三个对象VariantTest obj3 = new VariantTest();}
}

程序输出

运行上述代码,输出结果如下:

staticVar = 1, instanceVar = 1
staticVar = 2, instanceVar = 1
staticVar = 3, instanceVar = 1

分析

  1. 静态变量 staticVar

    • 每次创建一个新对象时,staticVar 都会自增 1。
    • 因为 staticVar 是静态变量,属于类本身,所以无论创建多少个实例对象,它在内存中只有一个副本。
    • 结果是,staticVar 的值会随着每次创建对象而增加。
  2. 实例变量 instanceVar

    • 每次创建一个新对象时,instanceVar 都会自增 1。
    • 因为 instanceVar 是实例变量,属于每个实例对象,所以每个对象都有自己的 instanceVar 副本。
    • 结果是,每个对象的 instanceVar 都是独立的,不会相互影响。

结论

  • 静态变量:共享给所有对象,属于类本身,生命周期与类相同。
  • 实例变量:独立于每个对象,属于实例对象,生命周期与实例对象相同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/29313.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开发利器】OpenCV实验大师最新版本又又发布了

最新发布 大家好,OpenCV实验大师 最新发布的安装包已经支持Python3.10了。同时继续支持Python3.8的安装包,OpenCV实验大师工具软件本次从Python3.8升级到Python3.10是为了方便更多基于Python3.10的开发者使用。同时修复了一批软件错误。 安装配置 下载…

mysql8.0删除了权限怎么都还在,是连接工具 navicat 的缓存,删了连接,重新连test 账号,权限就好了

删除了权限怎么都还在,是连接工具 navicat 的缓存,删了连接,重新连test 账号,权限就好了 1. 检查全局权限 首先,检查 mysql.user 表中是否有全局权限: SELECT * FROM mysql.user WHERE usertest AND host%;在查询结果中,如果所有权限列&am…

SpringBoot修改banner

在resources目录下创建banner.txt文件 到该网站下选择banner https://www.bootschool.net/ascii-art 点击拷贝: 粘贴到banner.txt中,保存 重新运行项目即可:

对 PLC AC 模块的 TRIAC 输出进行故障排除

在大多数离散 PLC 系统中,排除输出设备故障的过程相当简单。如果输出端正常工作,则在“关闭”时应测量 0 V,在“开启”时应测量满源电压。对于数字和继电器输出,情况确实如此。对于由 TRIAC 驱动的 AC 输出也应如此,但…

数据结构预备知识(Java):包装类泛型

1、包装类 1.1 包装类 在Java中,每一个基本数据类型都有一个对应的包装类: 在SE的学习中我们已有过简单了解。 我们可以注意到,除了int类型的包装类为Integer,char类型的包装类为Character外,其余基本类型的包装类均…

远程工作岗位机会

电鸭:​​​​​​https://eleduck.com/?sortnew电鸭社区是具有8年历史的远程工作招聘社区,也是远程办公互联网工作者们的聚集地。在社区,我们进行有价值的话题讨论,也分享远程、外包、零活、兼职、驻场等非主流工作机会。「只工…

html结构之head

head中的title**必须有**

llm-大模型落地评测?提供一个领域大模型测评方法

文章目录 前置说明1.领域大模型评估指标1.1.性能指标计算方法1.1.1.F11.1.2.首字响应时间1.1.3.处理效率1.1.4.并发路数1.1.5.正确性1.1.6.完整度1.1.7.相关度1.1.8.有效性 1.2.安全性指标计算方法1.2.1.禁止项内容的统计方式1.2.2.问题项内容占比率的统计方式 1.3.质量指标及计…

启动报错 “lc.exe”已退出,代码为 -1

启动项目时报错 “lc.exe”已退出,代码为 -1,这个原因是项目需要认证的凭证,有两种方法解决 1.手动搜索license,然后删掉即可 2.安装插件 工具->nuget包管理->管理解决方案的nuget包,搜emptylicenses&#xff0c…

使用LangChain+Ollama自己做的一个和大语言模型聊天的网站支持上下文对话,学习记录。

0.引言 在自己学习的过程中可以自己做一个和聊天大模型对话的一个小网站,成就感不亚于人生第一次跑完10km。 1.项目介绍 前端代码:Vue3, MarkDownIT. 后端代码:Python3, Fernet库, OpenAPI, LangChain, Ollama. Ollama 本地模型的部署和管理…

SuperMap iClient3D 11i(2023) SP1 for Cesium 调整

SuperMap iClient3D 11i(2023) SP1 for Cesium 最新版本 下载地址 SuperMap技术资源中心|为您提供全面的在线技术服务 每一次版本升级,都要对代码进行修改调整,都是为了解决功能需求。当然,也为产品做了小白鼠测试,发现bug,优化功能。 由于前端开发使用的是dojo框架,类…

java之sql注入审计

1 基础环境搭建 1.1 mysql数据库搭建 phpStudy是一个PHP调试环境的程序集成包,PHPMysqlApache。 通过phpstduy下载与安装指 定版本的mysql数据库【可以同时下载多个版本,便于应对不对的系统及复现漏洞便捷切换多个版本】 完成下载后,启动…

失眠焦虑?这里有你的心灵疗愈手册

🍃 亲爱的朋友们,你是否也曾在深夜里辗转反侧,无法入眠?是否也曾因为生活中的琐事而焦虑不安,无法放松心情?在这个快节奏的时代,失眠和焦虑似乎成为了我们生活中难以避免的问题。今天&#xff0…

SpringBoot购物网站

摘要 随着信息技术的高速发展,二十一世纪的网络技术和网络应用正在快速融入人们的生活,并且由于网络服务以及网络应用日渐普及,人们对于现在生活的需求也随之增长,而网上购物的便捷对人们的吸引力越来越大,购物网站可…

ES 8.14 向量搜索优化

参考:https://blog.csdn.net/UbuntuTouch/article/details/139502650 检索器(standard、kNN 和 RRF) 检索器(retrievers)是搜索 API 中的一种新抽象概念,用于描述如何检索一组顶级文档。检索器被设计为可以…

【经典爬虫案例】用Python爬取微博热搜榜!

一、爬取目标 本次爬取的是: 微博热搜榜 (代码也可直接在下方拿): ​ 分别爬取每条热搜的: 热搜标题、热搜排名、热搜类别、热度、链接地址。 下面,对页面进行分析。 经过分析,此页面没有XHR链接通过&am…

如何覆盖!important修饰的属性

最简单的方法 如果这个!important修饰的属性 是自己的写的,去掉这种写法,使用优先级的方式来写这个属性(.outter .inner 的优先级就会比 。outter的优先级高) 复杂的方法:用魔法打败魔法 但是这个样式来自于全局css&am…

图片懒加载实现

图片懒加载是通过延迟加载页面上的图片直到这些图片即将进入浏览器窗口(即用户滚动到它们附近时)才开始加载。这样可以显著减少初始加载时间和总下载数据量,提高用户体验。 使用原生的 loading 属性 HTML5 提供了一个非常简单的原生方法来实…

Linux 系统中的 /dev/null 文件

Linux 系统中的 /dev/null 文件 1. UsageReferences In some operating systems, the null device is a device file that discards all data written to it but reports that the write operation succeeded. /dev/null (空设备) 在类 Unix 系统中是一个特殊的设备文件&#x…

【机器学习】智能创意工厂:机器学习驱动的AIGC,打造未来内容新生态

🚀时空传送门 🔍机器学习在AIGC中的核心技术📕深度学习🎈生成对抗网络(GANs) 🚀机器学习在AIGC中的具体应用🍀图像生成与编辑⭐文本生成与对话系统🌠音频生成与语音合成 …