static静态变量

概述

static是静态的意思,我的理解就是在一个类中创建一个变量或者方法,而这个变量或者方法是属于公共的可以直接通过这个类访问这个变量或者这个方法。

访问的方式

类名.static的变量名
类名.static的方法名

static变量 

 这里我写了一个小demo用来调用static变量的

创建一个B的测试类

public class B {
    public static void main(String[] args) {
        A a = new A();
        A a1 = new A();
        A.setTeacher("张莹");
        a.daYin();
        a1.daYin();
    }

创建了一个标准的A的javabean类

public class A {
    private int a;
    private static String teacher;
    public void daYin (){
        System.out.println(teacher);
    }
    public A() {
    }

    public A(int a) {
        this.a = a;
    }

    public int getA() {
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }

    public static String getTeacher() {
        return teacher;
    }

    public static void setTeacher(String teacher) {
        A.teacher = teacher;
    }
}

 

 这里分析了一下static中的内存图

执行main方法中的静态变量teacherName时先会加载Student这个类的字节码文件,然后再再静态区中存储静态变量teacherName由于是String类型所以初始值是null。

 接着给teacherName赋值

 然后newStudent对象在堆空间开辟一个空间并给予地址值在把地址值赋值给s1,然后初始化name和age,然后给name和age赋值。

然后调用show方法。show方法进栈,并执行里面的打印函数。 

 执行完show方法,show方法出栈,然后在new了一个Student,也是在堆里面开辟了一个空间并给了一个地址值,然后把地址值给s2,然后变量初始化,但是这里没有给里面的赋值。所以打印的就是null 0 阿伟老师

 static方法

 static的注意事项

我在这里用自己的理解解释一下,因为静态变量是属性类的并不是某个对象的,所以它不能访问非静态的变量和方法,因为它的创建是比较对象还要早的,那静态方法中没有this是因为this是谁调用这个方法那个对象就把地址值给this,而静态方法的 直接通过类调用的,没有对象所以就没有this

小结

1.当 static 修饰成员变量或者成员方法时,该变量称为静态变量,该方法称为静态方法。该类的每个对象都共享同一个类的静态变量和静态方法。任何对象都可以更改该静态变量的值或者访问静态方法。但是不推荐这种方式去访问。因为静态变量或者静态方法直接通过类名访问即可,完全没有必要用对象去访问。

2.无static修饰的成员变量或者成员方法,称为实例变量,实例方法,实例变量和实例方法必须创建类的对象,然后通过对象来访问。

3.static修饰的成员属于类,会存储在静态区,是随着类的加载而加载的,且只加载一次,所以只有一份,节省内存。存储于一块固定的内存区域(静态区),所以,可以直接被类名调用。它优先于对象存在,所以,可以被所有对象共享。

4.无static修饰的成员,是属于对象,对象有多少个,他们就会出现多少份。所以必须由对象调用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【高校科研前沿】南科大姜丽光课题组在地球物理学领域TOP期刊Geophys. Res. Lett.发表极端气候频发下水库蓄水状态的相关研究成果

文章简介 论文名称:Reservoir Filling Up Problems in a Changing Climate:Insights From CryoSat‐2 Altimetry 第一作者及单位:汪志伟(硕士研究生 南方科技大学环境学院) 通讯作者及单位:姜丽光(助理教…

Python轻量级的插件框架库之pluginbase使用详解

概要 在软件开发中,插件系统是一个常见的需求。插件系统允许开发者动态加载和卸载功能模块,从而提高应用程序的灵活性和可扩展性。Python的pluginbase库是一个轻量级的插件框架,旨在简化插件系统的构建过程。pluginbase库提供了一套简单易用的API,使开发者能够快速集成插件…

【软件测试】LoadRunner参数化属性设置_单个参数

目录 为什么使用参数化属性详解Select next rowSequential(顺序)Random(随机)Unique(唯一)Same line as XXX(和XXX属性的取值方式一样) Update value onEach iteration(每…

学习笔记——动态路由协议——OSPF(OSPF网络类型1)

五、OSPF网络类型 网络类型:是指运行OSPF网段的二层链路类型。 1、OSPF网络类型简介 (1) OSPF网络类型 MA(Multi-Access ,多路访问)在一个网段内的节点数量不限制(一条链路上有多个访问点)。MA的网络一般分为两种: 1)广播式多路访问网络…

【全开源】Java共享茶室棋牌室无人系统支持微信小程序+微信公众号

打造智能化休闲新体验 一、引言:智能化休闲时代的来临 随着科技的飞速发展,智能化、无人化服务逐渐渗透到我们生活的各个领域。在休闲娱乐行业,共享茶室棋牌室无人系统源码的出现,不仅革新了传统的休闲方式,更为消费…

《QT实用小工具·六十八》基于QMenu开发的炫酷菜单栏

1、概述 源码放在文章末尾 该项目基于QMenu实现了炫酷的菜单栏效果,包含了如下功能: 1、实现了类似word菜单栏的效果,可以在菜单栏中横向添加不同的菜单 2、鼠标点击菜单可以展开菜单栏,再次点击菜单可以收起菜单栏 3、鼠标点击笑…

React基础知识笔记

Reat简介 React:用于构建用户界面的 JavaScript 库。由 Facebook 开发且开源。是一个将视图渲染为html视图的开源库 第一章:React入门 相关js库 react.development.js :React 核心库react-dom.development.js :提供 DOM 操作的…

AI 前沿发展摘要

🔔 AI 前沿发展摘要 1⃣️ ChatScene: 一句话生成自动驾驶关键场景 主要功能: Chat Scene 能够在CARLA仿真环境中创建多样化和复杂的场景, 有效地弥合了交通场景文本描述和CARLA实际仿真之间的鸿沟 效果: 通过使用生成的安全关键场景来微调不同的基于RL的自动驾…

MGR集群模拟故障切换

说明: 1、MGR集群搭建起来,但不知道是否能进行启动切换,故要手动模拟故障并且验证 2、停止主库master服务,登录mysql查看MGR是否进行自动切换。 3、主库切换完成以后,手动将宕机的服务器添加到MGR集群中。 一、模拟故障…

js知识点之闭包

闭包 什么是闭包 闭包,是 JavaScript 中一个非常重要的知识点,也是我们前端面试中较高几率被问到的知识点之一。 打开《JavaScript 高级程序设计》和《 JavaScript 权威指南》,会发现里面针对闭包的解释各执一词,在网络上搜索关…

【PMP必考点】2024年PMP敏捷知识必考点-工件篇

PMP自2023年8月起启动了PMBOK第七版教材,考试内容的侧重点也发生了改变:大幅增加了敏捷相关的内容。以往考纲只有不到10%的敏捷管理的内容,新考纲的敏捷管理题目增加至50%。所以如果复习只用之前的题目是远远不够的,必须要多刷新考…

2024年西安交通大学程序设计校赛

A题 签到题 代码如下 //A #include<iostream> #include<algorithm> #define int long long #define endl \n #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); using namespace std; signed main() {IOSint a,b,c,d;cin>>a>>b>>c…

使用C语言openssl库实现 RSA加密 和 消息验证

Q&#xff1a;什么是RSA&#xff1f; A&#xff1a;RSA&#xff08;Rivest-Shamir-Adleman&#xff09;是一种非对称加密算法&#xff0c;是最早的一种用于公开密钥加密和数字签名的算法。它使用一对公钥&#xff08;public key&#xff09;和私钥&#xff08;private key&…

Gartner发布2024年数据与分析重要趋势

Gartner公司发布了2024年数据与分析&#xff08;D&A&#xff09;重要趋势&#xff0c;这些趋势正在带来包括组织、人事问题在内的各种挑战。 Gartner高级研究总监方琦表示&#xff1a;“AI的力量以及日益重要的生成式AI正在改变人们的工作方式、团队协作方式和流程运作方式…

每天学点小知识:Windows终端Powershell美化

前言 本章的旨在教会你美化自己的终端&#xff0c;powershell需要以管理员运行 经过我的测试&#xff0c;不同的电脑可能会有不同的报错&#xff0c;具体操作根据官方为主https://ohmyposh.dev/docs 效果展示 Oh My Posh&#xff1a;提供美观的 PowerShell 提示符主题 1.安装…

LWIP_TCP 协议

目录 1 TCP 协议简介 1.1 TCP 协议简介 1.2 TCP 的建立连接 1.3 TCP 终止连接 1.4 TCP 报文结构 1.5 lwIP 的 TCP 报文首部数据结构 1.6 lwIP 的 TCP 连接状态图 1 TCP 协议简介 1.1 TCP 协议简介 TCP&#xff08;Transmission Control Protocol 传输控制协议&#xff0…

鸿蒙时间滑动选择器弹窗

例子&#xff1a; Button(打开弹窗).fontSize(14).width(106).height(32).padding({ left: 0, right: 0 }).fontColor(#999).onClick(()>{DatePickerDialog.show({selected:new Date(),onDateAccept:(value)>{AlertDialog.show({ message:JSON.stringify(value) })}})}) …

【豆伴匠】L1-L12更新完,一站式解决文史积累、阅读、写作难题,弯道超车,寒假必备

合抱之木&#xff0c;生于毫末&#xff1b; 九层之台&#xff0c;起于垒土&#xff1b; 千里之行&#xff0c;始于足下。 豆伴匠是什么&#xff1f; 豆伴匠内容包括&#xff1a;人、文、史、作四个模块&#xff0c;全面覆盖文史知识及读写技巧。 目前&#xff0c;豆伴匠有L…

[猫头虎分享21天微信小程序基础入门教程]第21天:小程序的社交分享与消息推送

[猫头虎分享21天微信小程序基础入门教程]第21天&#xff1a;小程序的社交分享与消息推送 第21天&#xff1a;小程序的社交分享与消息推送 &#x1f4f2; 自我介绍 大家好&#xff0c;我是猫头虎&#xff0c;一名全栈软件工程师。今天我们继续微信小程序的学习&#xff0c;重…

论文《Visual Point Cloud Forecasting enables Scalable Autonomous Driving》详细解析

论文《Visual Point Cloud Forecasting enables Scalable Autonomous Driving》详细解析 摘要 该论文提出了一种新的预训练任务&#xff0c;称为“视觉点云预测”&#xff08;Visual Point Cloud Forecasting&#xff09;&#xff0c;从历史视觉输入中预测未来的点云。论文介…