java什么时候声明static方法

news/2025/3/21 9:44:22/文章来源:https://www.cnblogs.com/89564f/p/18231113

声明为static的方法有以下典型使用场景

 

  1. 工具方法(Utility Methods):当你有一个方法不需访问对象状态,即不需要访问类的非静态成员变量,那么这个方法可以声明为static。这样,你无需创建类的实例就可以通过类名直接调用该方法。很多工具类如Math, Arrays, Collections中的方法都是static的。

  2. 经常用到的方法,可以声明为static,这样省去了每次new对象的内存空间,因为非static方法,需要new对象才能调用此方法,如:

  3. 常量访问器:如果你需要提供一个公共的方法来获取类中的常量值,这个方法应该声明为static,如:

  4. 当一个方法或者变量需要在类加载器加载类的时候,就需要初始化时,声明为static。Static变量在项目启动时就分配内存,直到程序结束释放内存。static和const变量在项目启动时就已经分配内存了,而且方法调用之后也不会被释放。

  5. 初始化方法:当一个方法或变量需要在类加载时就被初始化或设置,应声明为static。静态代码块和静态初始化方法会在类首次被加载时执行一次,如:

  6. 声明为static方法后,内存中就只有一份数据了。所以就要注意线程安全问题,就需要加同步处理。线程就会等待访问了,就会有线程安全问题。

  7. 单例模式中的getInstance方法:在实现单例模式时,提供一个静态的getInstance方法来返回唯一的实例对象,这也是static方法的一个典型应用。

  8. main方法:Java程序的入口点public static void main(String[] args)必须声明为static,因为它是在类加载时由JVM调用的,并且不需要创建类的实例。

总的来说,当你希望一个方法能够不依赖于类的任何实例,或者该方法的操作与类的实例状态无关,且期望在不实例化对象的情况下就能使用该方法时,就应该声明为static。

- EOF -

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

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

相关文章

2024年9大主流提效个人项目管理工具分享

本文将介绍市场上几款受欢迎的个人项目管理软件,帮助你选择适合自己需求的最佳工具。本文将分享9大主流提效个人项目管理工具:PingCode、Worktile、Smartsheet、Celoxis、Wrike、QuickBase、Miro、FigJam、Nifty。个人项目管理软件作为提高生产力、组织任务和跟踪进度的强大工…

璞华科技获《数据产品登记证书》,璞华易表入数据资产运营市场

根据地方政策、深入地方市场、为地方客户提供专业的数据资产入表、数据资产运营管理服务!随着数字经济时代的飞速发展,数据要素在社会经济中的地位也变得越来越重要,成为超越传统土地、劳动力、技术和资金的新型关键资源,被誉为“第五要素”。这一变化不仅凸显了数据在当今…

进制转换

void decToBinary(int decimal) {int binary[32];int cnt = 0;while (decimal > 0){binary[cnt] = decimal % 2; // 取模放在低位decimal = decimal / 2; // 更新参数cnt++;}printf("Binary equivalent: ");for (int i = cnt - 1; i >= 0; i--) // 逆向输出…

Linux 提权-内核利用

本文通过 Google 翻译 Kernel Exploits – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。导航0 前言 1 内核简介 2 寻找内核漏洞2.1 发现内核版本 2.2 手动查找内核漏洞2.2.1 通过 Google 查找内核漏洞 2.2.2…

配置逻辑删除

对于一些比较重要的数据,我们往往会采用逻辑删除的方案,即:在表中添加一个字段标记数据是否被删除 当删除数据时把标记置为true 查询时过滤掉标记为true的数据一旦采用了逻辑删除,所有的查询和删除逻辑都要跟着变化,非常麻烦。为了解决这个问题,MybatisPlus就添加了对逻辑…

Spring Boot自动装配bean到IOC容器的实现

前言Spring Boot能帮助我们Java开发者快速开发基于Spring框架的应用,除了其作为依赖管理好帮手的一众Spring-Boot-Starter之外,其自动装配(Auto Configure)特性也起到了非常重要的作用。那么Spring Boot是如何实现自动装配的呢?本文将结合源码去讲解其原理。 版本信息spri…

有哪些免费方法可以将PDF转成PPT?

有时候我们在制作文件时,新建的PPT文档是空白页比较单调,会去网上下载一些模板,而下载后的文档多是PDF格式,必须转换为PPT格式,以便使用自己的文档。所以pdf转ppt怎么转换免费呢?下面一起来看看pdf转ppt这些方法吧。 方法一、修改文件拓展名 小伙伴们平时打开文件的时候,…

idea打包运行后显示,没有主清单属性

一、问题现象idea打包成jar包,运行后显示,没有主清单属性!二、问题分析主要原因如下:1. 缺少了项目maven打包插件 spring-boot-maven-plugin。2. 没有指定具体的项目的Main方法入口或启动类。三、解决方法 (一)方法1 1、查看项目打包的pom.xml文件中,并添加配置如下:&l…

zabbix监控域名到期时间

# 获取证书过期时间脚本cat /etc/zabbix/scripts/base/check-http-expire.sh #!/bin/bash host=$1 #end_date=`whois -H $host|grep "Registry Expiry Date"|awk {print $NF}` end_date=`whois -H $host|egrep "Registry Expiry Date|Expiration Time"|a…

字符串的应用---合并

准备: public class Employee{ public int Id { get; set; } public string Name { get; set; } public double Salary { get; set; } } public class Seat { public int Id { get; set; } publ…

pycharm创建项目后修改默认的app

在pycharm里面创建django项目后,会自动创建一个与项目名称相同的app,该app是可以修改的,但是修改后需要修改配置文件settings.py中的配置项ROOT_URLCONF

Apline部署K3s的Agent

介绍了在Alpine-Linux上部署K3s-Agent之前我们在Ubuntu上部署了K3s的Server节点(传送门),这次我们加入两台K3s的Agent节点搭建一个K3s的3节点工作环境。 需要准备好网络环境,确保三台VM之间是可以ping通的,设置好固定IP和主机名 实验环境的IP列表Hostname IPubuntu22 192.…