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.pswp.cn/web/92531.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/92531.shtml
英文地址,请注明出处:http://en.pswp.cn/web/92531.shtml

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

相关文章

[Oracle] MAX()和MIN()函数

MAX() 和 MIN() 是 Oracle 常用的聚合函数,用于从一组值中找出最大值和最小值1.MAX()函数MAX()函数返回指定列或表达式中的最大值语法格式MAX(expression)参数说明expression:可以是列名、计算列或表达式示例-- 返回employees表中salary列的最大值 SELEC…

网络资源模板--基于Android Studio 实现的麻雀笔记App

目录 一、测试环境说明 二、项目简介 三、项目演示 四、部设计详情(部分) 添加页面 五、项目源码 一、测试环境说明 电脑环境 Windows 11 编写语言 JAVA 开发软件 Android Studio (2020) 开发软件只要大于等于测试版本即可(近几年官网直接下载也可以)&…

96-基于Flask的酷狗音乐数据可视化分析系统

基于Flask的酷狗音乐数据可视化分析系统 📋 目录 项目概述技术栈系统架构功能特性数据库设计核心代码实现数据可视化部署指南项目总结 🎯 项目概述 本项目是一个基于Flask框架开发的酷狗音乐数据可视化分析系统,旨在为用户提供音乐数据的…

Java基础-红包雨游戏-多线程

目录 案例要求: 实现思路: 代码: Employee RedPacket RedPacketRain 总结: 案例要求: 实现思路: 创建一个员工类,id和抢到的金额,创建一个红包类,里面就是金额,创…

[激光原理与应用-203]:光学器件 - 增益晶体 - 增益晶体的使用方法

增益晶体是激光器的核心元件,其作用是通过受激辐射放大光信号。正确使用增益晶体需综合考虑晶体选型、光路设计、热管理、泵浦方式及安全防护等关键环节。以下是增益晶体的详细使用方法及注意事项:一、晶体选型:根据需求匹配参数材料选择Nd:Y…

​什么是抽象主义人工智能?​

什么是抽象主义人工智能? 传统的人工智能分为符号主义和连接主义两个派别,后来又增加了行为主义。 我发现符号主义和连接主义处理的都是文本,而不是语义。原来的专家系统是符号主义的产物。现在的大语言模型是连接主义的产物。它们处理的都…

OpenSpeedy绿色免费版下载,提升下载速度,网盘下载速度等游戏变速工具

下载地址获取点击这里打开:OpenSpeedy 简单介绍OpenSpeedy 是一款开源免费的游戏变速工具(对某些网盘或者其他的一些下载也可进行加速),让你的游戏突破帧率限制,提供更流畅丝滑的游戏加速体验。1、完全免费且开源2、简…

Windows 电脑远程访问,ZeroTier 实现内网穿透完整指南(含原理讲解)

🧭 一、目标场景说明 想从安卓移动端远程到Windows电脑 实现如下效果: 家中 Windows 电脑开机联网;安卓手机/平板在外地,只要联网就能远程控制电脑桌面;不需要公网 IP,不用设置端口映射;免费…

解决本地连接服务器ollama的错误

1. 服务器 ollama 安装 $ curl -fsSL https://ollama.com/install.sh | sh >>> Cleaning up old version at /usr/local/lib/ollama >>> Installing ollama to /usr/local >>> Downloading Linux amd64 bundle ##################################…

详解Windows(十四)——PowerShell与命令提示符

详解Windows(十四)——PowerShell与命令提示符 一、Windows命令行工具概述 1. 什么是命令行界面(CLI) 命令行界面,简称CLI(Command Line Interface),是一种通过输入文字命令来操作电脑的方式。与我们熟悉…

Spring源码解析 - SpringApplication 属性-初始化initializers, listeners -Spring提供的钩子函数

初始化源码 public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources) {~~~setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));setListeners((Collection) getSpringFactoriesInstances(A…

简单聊聊PowerShell

1、powershell和cmdpowershell简单来说也是一个控制终端&#xff0c;他也经常拿出来和windows自带的CMD来进行对比。windows系统一般来说这两者都是自带的。虽然cmd平时大家用的最多&#xff0c;但他是非常古老的&#xff0c;可以用来执行简单的批处理文件&#xff0c;如.bat等…

Spring系列之Spring AI入门

概述 GitHub&#xff0c;官网&#xff0c;目前最新版是1.0.1。 功能&#xff1a; 跨AI提供商的可移植API&#xff1a;用于聊天、文本到图像和嵌入模型。支持同步和流API选项。还支持下拉访问模型特定功能。跨Vector Store提供商的可移植API&#xff0c;包括同样可移植的新颖…

ELK常见的问题

ELK 栈在使用过程中会遇到各种问题&#xff0c;以下是常见问题分类及解决方案&#xff0c;涵盖 ​Elasticsearch、Logstash、Kibana 和 Beats&#xff08;如 Filebeat&#xff09;​​ 四大组件&#xff1a; &#x1f6a8; ​一、连接与通信问题​ 1. ​Elasticsearch 拒绝连接…

物理AI与人形机器人:从实验室到产业化的关键跨越

2025年8月9日&#xff0c;北京——世界机器人大会&#xff08;WRC&#xff09;的开幕成为物理AI与机器人技术发展的集中展示场。英伟达在大会预告中首次提出“物理AI将重塑50万亿美元市场”的论断&#xff0c;涵盖工业制造、医疗、低空经济等领域。与此同时&#xff0c;宇树科技…

使用 Vuepress + GitHub Pages 搭建项目文档(2)- 使用 GitHub Actions 工作流自动部署

在上一篇文章中&#xff0c;我们已经成功用 VuePress 搭建了项目文档&#xff0c;并使用 sh 脚本部署到了 GitHub Pages。 但随着文档的更新频率增加&#xff0c;每次都要手动推送&#xff0c;那有没有不需要手动推送的方法呢&#xff1f;那必须有。 这次我们将用 GitHub Actio…

Python爬虫实战:研究PSpider框架,构建电商数据采集和分析系统

一、引言 1.1 研究背景 在大数据时代,数据已成为驱动科技创新、商业决策和社会发展的核心资源。据 IDC 预测,全球数据量将从 2020 年的 64ZB 增长至 2025 年的 175ZB,其中互联网公开数据占比超过 60%。如何从海量网络信息中高效、精准地提取有价值的数据,成为学术界和工业…

剑指offer第2版:动态规划+记忆化搜索

前三题是同一种模型&#xff0c;所以我分别用递推、记忆化、动归来做 一、p74-JZ10 斐波那契数列 斐波那契数列_牛客题霸_牛客网 class Solution { public:int Fibonacci(int n) {// write code hereif(n1||n2) return 1;int a1,b1,c1;while(n>2){cab;ab;bc;--n;}return c…

Unity 调节 Rigidbody2D 响应速度的解决方案【资料】

可以通过多种方式调节 Unity 中 Rigidbody2D 的响应速度&#xff0c;包括降低物理更新频率、屏蔽过小值以及优化物理参数。以下是几种有效的实现方法&#xff1a;1. 降低物理更新频率&#xff08;不推荐直接修改&#xff09;虽然可以修改 Time.fixedDeltaTime 来降低物理更新频…

力扣-189.轮转数组

题目链接 189.轮转数组 class Solution {public void reverse(int[] nums, int i, int j) {while (i < j && i > 0 && j < nums.length) {int temp nums[i];nums[i] nums[j];nums[j] temp;i;j--;}}public void rotate(int[] nums, int k) {k k …