Static关键字的用法详解

news2024/11/26 14:57:08

Static关键字的用法详解

  • 1、Static修饰内部类
  • 2、Static修饰方法
  • 3、Static修饰变量
  • 4、Static修饰代码块
  • 5、总结


💖The Begin💖点点关注,收藏不迷路💖

在Java编程语言中,static是一个关键字,它可以用于多种上下文,包括类、方法、变量和代码块。static的主要作用在于它修饰的内容是与类相关联的,而不是与类的某个特定实例(对象)相关联的。

1、Static修饰内部类

使用static修饰的内部类称为静态内部类。 静态内部类不需要外部类的实例即可创建,因此它不能访问外部类的非静态成员(变量和方法)。

public class OuterClass {  
    private static String outerStaticField = "Outer static field";  
  
    static class StaticNestedClass {  
        // 静态内部类中可以访问外部类的静态成员  
        public void printOuterStaticField() {  
            System.out.println(outerStaticField);  
        }  
    }  
}

2、Static修饰方法

静态方法属于类本身,而不是类的实例。 因此,它们不能访问非静态的成员(因为它们需要一个类的实例来访问),而且它们可以通过类名直接调用。

public class MyClass {  
    public static void staticMethod() {  
        System.out.println("This is a static method");  
    }
  
    // 主方法可以直接调用静态方法  
    public static void main(String[] args) {  
        MyClass.staticMethod(); // 无需创建MyClass的实例  
    }  
}

3、Static修饰变量

静态变量(也称为类变量)属于类,而不是类的实例。 这意味着它们被所有类的实例共享,并且只存在一份拷贝。静态变量在类被加载到JVM时分配内存,并且只分配一次。

public class MyClass {  
    public static int staticVar = 42;
  
    // 可以通过类名直接访问静态变量  
    public static void main(String[] args) {  
        System.out.println(MyClass.staticVar); // 输出42  
    }  
}

4、Static修饰代码块

静态代码块在类被加载到JVM时执行,并且只执行一次。 它们通常用于初始化静态变量或执行只需要执行一次的代码。

public class MyClass {  
    static {  
        System.out.println("Static block executed");  
    }  
  
    // 主方法会触发类的加载,因此静态代码块会被执行  
    public static void main(String[] args) {  
        // 当MyClass被加载时,静态代码块已经被执行  
    }  
}

5、总结

1、静态方法不能直接访问非静态成员(变量和方法),因为它们属于类的实例,而静态方法属于类本身。

2、在静态方法中,this和super关键字都是无效的,因为this引用当前对象,而静态方法不依赖于任何对象。

3、静态变量在内存中只有一份拷贝,并且它们的生命周期与类相同。

4、静态代码块按照它们在类中的出现顺序依次执行,并且只执行一次。

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

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

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

相关文章

【Java探索之旅】初识多态_概念_实现条件

文章目录 📑前言一、多态1.1 概念1.2 多态的实现条件 🌤️全篇总结 📑前言 多态作为面向对象编程中的重要概念,为我们提供了一种灵活而强大的编程方式。通过多态,同一种操作可以应用于不同的对象,并根据对象…

数据库系统原理 | 查询作业2

整理自博主本科《数据库系统原理》专业课自己完成的实验课查询作业,以便各位学习数据库系统概论的小伙伴们参考、学习。 *文中若存在书写不合理的地方,欢迎各位斧正。 专业课本: ​ ​ ———— 本次实验使用到的图形化工具:Heidi…

深入分析SSL/TLS服务器的证书(C/C++代码实现)

SSL(Secure Sockets Layer)和TLS(Transport Layer Security)是网络安全领域的重要协议,它们在保护网络通信中发挥着至关重要的作用。这些协议通过加密和身份验证机制,确保数据在传输过程中的机密性和完整性…

cs231n作业1——SVM

参考文章:cs231n assignment1——SVM SVM 训练阶段,我们的目的是为了得到合适的 𝑊 和 𝑏 ,为实现这一目的,我们需要引进损失函数,然后再通过梯度下降来训练模型。 def svm_loss_naive(W, …

python基础篇(8):异常处理

在Python编程中,异常是程序运行时发生的错误,它会中断程序的正常执行流程。异常处理机制使得程序能够捕获这些错误,并进行适当的处理,从而避免程序崩溃。 1 错误类型 代码的错误一般会有语法错误和异常错误两种,语法错…

最新整理的机器人相关数据合集(1993-2022年不等 具体看数据类型)

机器人安装数据是指记录全球或特定区域内工业机器人新安装数量的信息,这一数据由国际机器人联合会(IFR)等权威机构定期发布。这些数据不仅揭示了机器人技术的市场需求趋势,还反映了各国和地区自动化水平及产业升级的步伐。例如,数据显示中国在…

nginx相关概念(反向代理、负载均衡)

1 Nginx 是什么 Nginx是一款轻量级的Web 服务器,其特点是占有内存少,并发能力强 2 Nginx 反向代理 正向代理代替客户端去发送请求反向代理代替服务端接受请求 2.1 正向代理 若客户端无法直接访问到目标服务器 server 则客户端需要配置代理服务器 pr…

云渲染技术对电影24帧和游戏60帧渲染需求及时间效率的影响

随着云计算技术的飞速发展,云渲染正重塑着影视和游戏产业的制作流程。它如何影响传统电影24帧和现代游戏60帧的渲染需求与时间效率?本文将深入探讨云渲染带来的变革。 一、电影24帧和游戏60帧作用 电影通常以24帧每秒(fps)的标准…

数字化精益生产系统--IFS财务管理系统

IFS财务管理系统是一款功能丰富、高效且灵活的企业财务管理软件,广泛应用于多个行业和不同规模的企业中。以下是对IFS财务管理系统的功能设计:

Linux shell编程学习笔记63:free命令 获取内存使用信息

0 前言 在系统安全检查中,内存使用情况也是一块可以关注的内容。Linux提供了多个获取内存信息的命令很多。今天我们先研究free命令。 1 free命令的功能、用法和选项说明 1.1 free命令的功能 free 命令可以显示系统内存的使用情况,包括物理内存、交换…

SSM高校教师教学质量评估系统-计算机毕业设计源码03344

摘要 在高等教育中,教学质量是培养优秀人才的关键。为了提高教学质量,高校需要建立一套科学、有效的教师教学质量评估系统。本研究采用 SSM技术框架,旨在开发一款高校教师教学质量评估系统。 SSM框架作为一种成熟的Java开发框架,具…

入门PHP就来我这(高级)11 ~ MySQL

有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享 路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。 1 PHP操作MySQL数据库的方法 PHP操作数据库现在用的多的是mysqli拓展库,mysqli扩…

【Python机器学习】模型评估与改进——多分类指标

多分类问题的所有指标基本是上都来自于二分类问题,但是要对所有类别进行平均。多分类的精度被定义为正确分类的样本所占的比例。同样,如果类别是不平衡的,精度并不是很好的评估度量。 想象一个三分类问题,其中85%的数据点属于类别…

可视化作品集(07):网格化管理领域

网格化管理可视化大屏是指利用大屏幕显示设备,通过数据可视化的方式展示网格化管理的相关信息和指标。网格化管理是一种以网格为基础的城市管理模式,通过将城市划分为不同的网格单元,实现对城市各项管理工作的全覆盖、全时空监控和全过程管理…

中国星坤X1224系列线对板连接器:小巧稳定,助力物联网终端高效运行

在物联网、电器和消防等领域,终端设备的安全稳定运行至关重要。为了满足这些领域对连接器高可靠性、小巧轻便和耐高温的需求,X1224系列线对板连接器应运而生。这款连接器以其独特的设计和卓越的性能,成为了终端设备中不可或缺的一部分。 一、…

中英双语介绍加拿大(Canada)

加拿大国家简介 中文版 加拿大简介 加拿大是位于北美洲北部的一个国家,以其广袤的土地、多样的文化和自然美景著称。以下是对加拿大的详细介绍,包括其地理位置、人口、经济、特色、高等教育、著名景点、国家历史和交通条件。 地理位置 加拿大是世界…

Day2用 rustlings 练习 Rust 语言-Move Semantics

大家好 今天 完成 2024年自动驾驶OS开发训练营-初阶营第四期-导学 Day2用 rustlings 练习 Rust 语言 -Move Semantics https://doc.rust-lang.org/stable/book/ch04-00-understanding-ownership.html 提交代码时候 提示 没有权限怎么出来 aciton 参考开发环境配置 https://rcor…

建投数据入选“2024年中国最佳信创企业管理软件厂商”

近日,建投数据凭借国产化自主知识产权、完备的信创资质及信创软硬件环境全栈适配能力,入选第一新声联合天眼查发布的“2024年中国最佳信创厂商系列榜单”细分行业榜之“最佳信创企业管理软件厂商”。 本次最佳信创厂商系列榜单评选,包括综合榜…

从0-1实现一个前端脚手架

https://gitee.com/childe-jia/kfc-cli.git gitee完整地址 介绍 为什么需要脚手架? 脚手架本质就是一个工具,作用是能够让使用者专注于写代码,它可以让我们只用一个命令就生成一个已经配置好的项目,而不用我们再花时间去配置和安…

【python教程】数据分析——numpy、pandas、matplotlib

【python教程】数据分析——numpy、pandas、matplotlib 文章目录 什么是matplotlib安装matplotlib,画个折线 什么是matplotlib matplotlib:最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建 安装matplotlib&…