当前位置: 首页 > news >正文

11. 为什么要用static关键字

11. 为什么要用static关键字

static:

  • 通常来说:在new一个对象的时候,数据存储空间才会被分配,方法才能被外界使用。但是有时只想单独分配一个存储空间,不考虑需要创建对象或不创建对象,在没有对象的情况下也想调用方法。static关键字就满足了我们的需求

  • 共享数据,节省内存

    • 当多个对象需要共享一份数据时,可以避免为每个对象单独开辟一个数据存储空间,节省内存

      • class Employee {private static int count = 0; // 所有 Employee 实例共享这个变量private String name;public Employee(String name) {this.name = name;count++; // 每创建一个实例,count 自增}public static int getCount() {return count;}
        }public class Main {public static void main(String[] args) {Employee e1 = new Employee("Alice");Employee e2 = new Employee("Bob");System.out.println("当前员工数: " + Employee.getCount()); // 输出 2}
        }
        
  • 不需要实例化,可以直接使用

    • class MathUtils {public static int add(int a, int b) {return a + b;}
      }public class Main {public static void main(String[] args) {int result = MathUtils.add(3, 5); // 直接通过类名调用静态方法System.out.println("3 + 5 = " + result); // 输出 8}
      }
      
  • 资源初始化 (类加载时执行)

    • class Database {private static Connection conn;static {try {conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "user", "password");System.out.println("数据库连接已建立");} catch (SQLException e) {e.printStackTrace();}}public static Connection getConnection() {return conn;}
      }public class Main {public static void main(String[] args) {Connection conn = Database.getConnection(); // 第一次调用时会触发静态代码块}
      }
      
http://www.lryc.cn/news/615538.html

相关文章:

  • Qt Graphics View框架概述
  • SpringBoot日志关系
  • 分治-快排-面试题 17.14.最小k个数-力扣(LeetCode)
  • 【Datawhale AI夏令营】让AI读懂财报PDF(多模态RAG)(Task 2)
  • 【无标题】六边形结构在二维拓扑量子色动力学模型中确实具有独特优势,并构建完整的二维拓扑量子色动力学模型。
  • QToolBar 的 addPermanentWidget() 详解与实战场景
  • Python如何将图片转换为PDF格式
  • [SC]SystemC 常见的编译/语法错误与解法(三)
  • PowerShell 入门系列(五):运行命令与命令剖析详解
  • Effective C++ 条款32:确定你的public继承塑模出 is-a 关系
  • pytorch+tensorboard+可视化CNN
  • ubuntu dpkg命令使用指南
  • 【线性代数】其他
  • 机器翻译实战:使用Gensim训练中英文词向量模型及可视化
  • leetcode-C语言-3479.水果成篮 III
  • 写 SPSS文件系统
  • Linux软件编程:shell
  • 组合期权:垂直价差
  • C++ 中的智能指针
  • 电子电气架构 --- 电气/电子架构迁移已拉开帷幕
  • Oracle数据库重启后打开异常状态的检查步骤
  • 一周学会Matplotlib3 Python 数据可视化-网格 (Grid)
  • [IOMMU]面向芯片/SoC验证工程的IOMMU全景速览
  • C# 通过第三方库INIFileParser管理INI配置文件
  • 智慧园区误报率↓76%:陌讯多模态融合算法实战解析
  • 202506 电子学会青少年等级考试机器人一级理论综合真题
  • 闲鱼智能监控机器人:基于 Playwright 与 AI 的多任务监控分析工具
  • 2025年SEVC SCI2区,基于深度强化学习与模拟退火的多无人机侦察任务规划,深度解析+性能实测
  • Dify 从入门到精通(第 24/100 篇):Dify 的实时数据处理与流式输出
  • 微积分 | 外微分