java--static修饰成员变量

1.static

叫静态,可以修饰成员变量、成员方法。

2.成员变量按照有无static修饰,分为两种:

①类变量:有static修饰,属于类,在计算机里只有一份,会被类的全部对象共享(不管那个类调用的,都是使用这一个变量,用的都是同一个地址,使用你上面给它赋值,然后下一行代码有赋值,就是改变了他的内容,不管说不定同一个new出来的)。

②实例变量(对象的变量):无static修饰,属于每个对象的。

使用方法

3.成员变量的执行原理

①类变量:属于类,与类一起加载一次,在内存中只有一份,可以被类和类的所有对象共享

②实例变量:属于对象,每个对象中都有一份,只能用对象访问。

③分析过程:

运行第一行代码:class在方法区内加载Test.calss。

运行第二行代码:在栈内存中加载一个main空间。

运行第三行代码:在方法区加载Student.class,然后加载Student.calss内的成员变量,发现name是类变量,会在堆中加载一个单独属于static String name的空间,然后Student.class中的name就指向这个空间,然后将"袁华"赋值给static String name空间。

运行第四行代码:发现有new在栈中的main方法中创建一个为Student s1的空间,然后在堆内存中创建一个属于s1的空间,叫将地址值交给栈中的Studnet s1空间。

运行第五行代码:给s1的name赋值,就是给堆中static String name空间赋值,将原有的覆盖掉,然后他就变成了"马冬梅"。

运行第六行代码:发现有new,在栈内存的main空间内创建一个Student s2的空间,然后在堆内存中创建一个s2空间,将地址值给栈内存中的Student s2空间,使得栈内存中的Student s2空间指向堆内存中的s2空间。

运行第七行代码:给s2中的name赋值,就是给堆中static String name空间赋值,将原有的覆盖掉,然后他就变成了"秋雅"。

运行第八行代码:调用输出,s1的name,先会在栈内存中找到Student s1空间中的地址值,根据地址值找到堆内存中的s1空间,发现没有name,然后在根据地址找到方法区内的Student.class方法,找到name,然后根据name的地址值,找到堆内存中的static String name空间,然后将"秋雅"打印出来。

运行第九行代码:调用输出,s2的name,先会在栈内存中找到Student s2空间中的地址值,根据地址值找到堆内存中的s2空间,发现没有name,然后在根据地址找到方法区内的Student.class方法,找到name,然后根据name的地址值,找到堆内存中的static String name空间,然后将"秋雅"打印出来。

运行第十行代码:给s1中的age赋值,先找到栈内存中的Student s1空间,然后根据地址值找到堆内存中的s1空间,给int age赋值为23.

运行第十一行代码:给s2中的age赋值,先找到栈内存中的Student s2空间,然后根据地址值找到堆内存中的s1空间,给int age赋值为18.

运行第十二行代码:打算输出:s1的age,先在栈内存中找到Student s1空间,然后根据地址值找到堆内存中的s1空间,然后将int age的值打印出来。

最后退出运行。

4.类变量的应用场景

在开发中,如果某个数据只需要一份,且希望能够被共享(访问,修改),则该数据可以定义成立类变量来记住。

注意:在同一个类中,访问自己类的类变量,才可以省略类名不写。

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

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

相关文章

竞赛选题 车道线检测(自动驾驶 机器视觉)

0 前言 无人驾驶技术是机器学习为主的一门前沿领域,在无人驾驶领域中机器学习的各种算法随处可见,今天学长给大家介绍无人驾驶技术中的车道线检测。 1 车道线检测 在无人驾驶领域每一个任务都是相当复杂,看上去无从下手。那么面对这样极其…

webshell之扩展免杀

由于很多企业为了防止源码泄露,都会使用加密扩展将代码进行加密,那么我们就可以就将计就计,将webshell也利用扩展加密,将特征消除,从而达到免杀的效果 1.php-beast 扩展地址 下载dll,并添加至ext中 在php…

CodeWhisperer 体验总结

CodeWhisperer 体验总结 | CodeWhisperer 是一款亚马逊新推出的通用代码生成器 可以实时进行代码数据的提供 还可以定义安全问题 CodeWhisperer 对个人用户是免费使用 企业用户需要订阅使用 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例…

C++基础从0到1入门编程(四)类和对象

系统学习C 方便自己日后复习,错误的地方希望积极指正 往期文章: C基础从0到1入门编程(一) C基础从0到1入门编程(二) C基础从0到1入门编程(三) 参考视频: 1.黑马程序员匠心…

为企业解决设备全生命周期需求,凌雄科技凸显DaaS增长价值

企业成长离不开投资,但毫无疑问的是,投资最有价值的部分在业务。相比之下,诸如办公设备之类的固定资产投资,很容易变成企业现金流的吞噬者。从购买、运维到保养、折旧、回收,现代企业在越来越大的办公设备规模面前&…

网络安全等级保护2.0国家标准

等级保护2.0标准体系主要标准如下:1.网络安全等级保护条例2.计算机信息系统安全保护等级划分准则3.网络安全等级保护实施指南4.网络安全等级保护定级指南5.网络安全等级保护基本要求6.网络安全等级保护设计技术要求7.网络安全等级保护测评要求8.网络安全等级保护测评…

关于植物单细胞转录组提核还是制备原生质体的思考

目前植物单细胞转录组测序主流平台的输入都是原生质体悬液或者细胞核悬液。 那么到底采用哪种更好呢? 啥? 成年人少做选择? 看看账上,摸摸兜里,得有财力支持啊! 本期,聊聊这个主题&#xff0…

Unity中颜色空间Gamma与Linear

文章目录 前言一、人眼对光照的自适应1、光照强度与人眼所见的关系2、巧合的是,早期的电子脉冲显示屏也符合这条曲线3、这两条曲线都巧合的符合 y x^2.2^(Gamma2.2空间) 二、Gamma矫正1、没矫正前,人眼看电子脉冲显示屏&#xff…

从根到叶:随机森林模型的深入探索

一、说明 在本综合指南中,我们将超越基础知识。当您盯着随机森林模型的文档时,您将不再对“节点杂质”、“加权分数”或“成本复杂性修剪”等术语感到不知所措。相反,我们将剖析每个参数,阐明其作用和影响。通过理论和 Python 实践…

短视频矩阵系统源码搭建部署分享

一、 短视频矩阵系统源码搭建部署分享 目录 一、 短视频矩阵系统源码搭建部署分享 二、短视频矩阵系统搭建功能设计 三、 抖音矩阵号矩阵系统功能设计原则 四、 短视频矩阵开发部分源码展示 很高兴能够帮助您,以下是短视频矩阵系统源码搭建部署分享&#xff1a…

【洛谷算法题】P5714-肥胖问题【入门2分支结构】

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5714-肥胖问题【入门2分支结构】🌏题目描述🌏输入格式&a…

跨境电商热点:如何在海外市场打开局面

随着全球化的推进,跨境电商成为连接不同国家和地区的商贸桥梁,呈现出蓬勃的发展势头。在这个竞争激烈的环境中,如何在海外市场打开局面成为跨境电商面临的关键问题。本文将深入探讨跨境电商的热点问题,分析如何有效利用市场趋势和…