代码优化之静态方法

15、PHP 静态方法、属性与错误处理全解析 本文深入解析了PHP中静态方法和属性的使用,以及错误处理的相关知识。静态方法和属性无需创建对象即可访问,适用于工具类方法、全局配置信息和计数器等场景。错误处理分为编程错误和外部数据资源错误,通过测试错误条件和合理使用错误级别,可以提高程序的健壮性。文章还提供了代码优化建议和综合示例,帮助开发者编写高效、稳定的PHP代码。 阅读详情

一 概述

我们通过static关键字来描述一个方法,这样的方法被称为静态方法。

二 静态方法与实例方法

        与静态方法先比,实例方法的调用需要消耗更多的系统资源,这是因为实例方法需要维护一张类似虚拟函数导向表的结构,这样可以方便的实现对多态的支持。而对于一些工具类方法,我们并没有对其重载的必要,那么我们可以通过将方法声明为static,即静态方法,从而加速方法的调用。

        我们在外边调用静态方法的时候,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式,而实例方法只能是后者,这样依赖静态方法是可以省去创建对象实例的操作。

        同时静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员和实例方法。

三 代码示例

        相同的方法,一个是静态方法,一个是实例方法,都执行10亿次

    @Test
    public void testStatic(){

        long time = System.currentTimeMillis();
        for (int i = 0; i < 1000000000; i++) {
            MD5Utils.MD5("202202070800");
        }
        long timeT = System.currentTimeMillis() - time;
        System.out.println("timeT = " + timeT);
        long timeH = System.currentTimeMillis();
        for (int i = 0; i < 1000000000; i++) {
            md5Utils.MD5UnStatic("202202070800");
        }
        long four = System.currentTimeMillis() - timeH;
        System.out.println("four = " + four);
    }

        结果

      静态方法: timeT = 1225219
      实例方法:four = 1168878

      结果显示实例方法更加快,资料显示不同机器影响着结果,后续我多测试几次,然后再来总结。

四 回顾多态三要素

        重写
        继承

        父类引用指向子类对象

参考:Java 多态 | 菜鸟教程 (runoob.com)https://www.runoob.com/java/java-polymorphism.html

HTML静态化 NULL 博文链接:https://smesoft.iteye.com/blog/1233494 立即下载

相关推荐

Qcom camera hal简介

Qcom camera hal简介

weixin_42136255的博客 7764

SpringMVC结合Freemarker在页面调用静态方法优化总结

SpringMVC结合Freemarker在页面加载静态方法的总结及优化方案

maodoubi的博客 1982

Rk3568 百兆以太网RMII模式DTS配置详解

本文详细解析了RK3568芯片在百兆以太网RMII模式下的DTS配置方法,包括时钟树配置、PHY接口模式定义及实际工程中的进阶设置。通过实战案例和调试技巧,帮助开发者快速解决RMII模式下的常见问题,提升工业控制设备的网络稳定性。

weixin_29189377的博客 420

接口的私有方法使用

/* 问题描述: 我们需要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题。 但是这个共有方法不应该让实现类使用,应该是私有化的。 解决方案: 从Java 9开始,接口当中允许定义私有方法。 普通私有方法,解决多个默认方法之间重复代码问题 格式: private 返回值类型 方法名称(参数列表) { 方法体 } 静态私有方法,解决多个静态方法之间重复代码问题 格式: private static 返回值类型 方法名称(参数列表) { 方法体 } (静态方法的使用: 通过接口名称,直接调用其中

weixin_42478365的博客 570

【backtrader保姆级教学】投资组合回测

method1:探索投资组合的最有方案,使用蒙特卡洛模拟Markowitz模型。# 提取最小波动组合对应的权重, 并转换成Numpy数组。# 绘制收益-标准差的散点图,并用颜色描绘夏普比率。# 在收益-风险散点图中突出风险最小的点。:param any_day: 任意日期。# 将该点坐标显示在图中并保留四位小数。password = “替换密码”# 找到标准差最小数据的索引值。user = “替换账号”# 计算GMV投资组合收益。# 计算每项资产的夏普比率。# 设置无风险回报率为0。

weixin_38132951的博客 2315

Nordic nRF52832实战:手把手教你搭建智能手环BLE通信框架(附完整代码)

本文详细介绍了如何使用Nordic nRF52832芯片搭建智能手环的BLE通信框架,涵盖芯片优势、协议栈初始化、低功耗广播策略及健康数据服务实现。通过完整代码示例和架构设计,帮助开发者快速掌握蓝牙低功耗通信技术,适用于可穿戴设备开发。

weixin_29192141的博客 246

【最优控制笔记】——1静态优化

找到让优化指标Lu(标量)达到最小值的控制量u。

Piccaboo的博客 833

大语言模型(LLM)在组合优化中的新突破:LLM-LNS与FunSearch性能对比

本文深入探讨了大语言模型(LLM)在组合优化中的创新应用,重点对比了LLM-LNS与FunSearch两种方法的性能差异。研究表明,LLM-LNS在物流路径规划、资源调度等场景中展现出显著优势,其双层自演化架构能有效平衡探索与利用,相比传统方法提升效率约43%。文章还提供了实践选择指南,帮助开发者根据具体需求选用合适的技术方案。

weixin_42526415的博客 405

nginx静态资源优化配置方法

Nginx对静态资源如何进行优化配置。这里从三个属性配置进行优化: sendfile on; tcp_nopush on; tcp_nodeplay on; sendfile sendfile,用来开启高效的文件传输模式。sendfile系统调用在两个文件描述符之间直接传递数据(完全在内核中操作),从而避免了数据在内核缓冲区和用户缓冲区之间的拷贝,操作效率很高,被称之为零拷贝。 语法 sendfile on | off 默认值 sendfile off; 位置 http,serv

认知 行动 坚持 1153

医疗影像分割 | 使用MedSAM训练自己的医学图像分割数据集

摘要 本文详细介绍了使用MedSAM模型训练自定义医学图像数据集的完整流程。主要内容包括:代码下载与环境配置(创建虚拟环境、安装依赖、验证CUDA)、数据集准备(目录结构、格式要求、命名规范及检查工具)、预训练模型下载(不同模型选择建议),以及训练脚本修改(解决文件名匹配、Windows系统NCCL支持、单GPU训练等常见问题)。通过逐步指导,帮助用户快速搭建MedSAM训练环境并适配自己的医学图像数据,实现高效的分割模型训练。

LiRongLu_的博客 489

仿真学习系列(三十八):Sigrity仿真之单端S参数提取

S 参数(Scattering Parameters)是高速信号分析中最基础也最常用的指标,能够全面表征走线、过孔、连接器等互连结构的高频行为。在 Sigrity PowerSI 中,Model Extraction 是最常用的 S 参数提取方式,适用于高速差分线、单端线、过孔、参考平面等各种拓扑结构。 本节将通过示例讲解如何在 PowerSI 中完成一次完整的 S 参数提取流程,包括:对象选择、端口设置、频率范围配置以及结果查看。掌握此方法后,即可对任意高速网络执行阻抗、插损、回损、串扰分析,为进一步的

案例文章,高速信号 838

关于static--代码优化问题小议

前些天看了篇文章: [url] http://www.ibm.com/developerworks/cn/java/j-perf08273/index.html[/url] 里面关于static的说法,我对起有了较深一步的研究 测试代码: public class bigObject { int a=9; long b=12; float c=12...

iteye_17650的博客 199

组态王的日历时间控件脚本

日期时间控件中的脚本中在小于10的月份和天数前必须要加上0,这是由首字符对比机制规定的,首字母相同,就不再不做对比了,比如1和11,是一样的。首字母不同,再比较下一位。 float Ayear1; float Amonth1; float Aday1; string temp1; Ayear1=sd.Year; Amonth1=sd.Month; Aday1=sd.Day; temp1=StrFromInt( Ayear1, 10 ); if(Amonth1<10) temp1=temp1+"-0"+

逍遥子的博客 5717

php代码优化

PHP代码优化 转载自https://www.cnblogs.com/Steven-shi/p/5897766.html 1 代码优化 1 尽量静态化 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。 当然了,这个测试方法需要在十万级以上次执行,效果才明显。 其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存...

qq_36447297的博客 381

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

android+静态方法参数context+弱引用,Android代码优化技巧.docx

Android代码优化技巧Android代码优化技巧Email: mailto:joyfly2006@joyfly2006@QQ:448086006Android的Dalvik VM在基础方面和Sum JVM没有什么大的区别,仅仅是字节码的优化,我们要知道什么时候用gc,什么时候用recycle以及到底用不用finalization,因为java对内存的分配只需要new开发者,而不需要显示的释放内...

weixin_33438009的博客 480

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Android优化之代码优化

代码优化 都是一些微优化,在性能方面看不出有什么显著的提升的。使用合适的算法和数据结构是优化程序性能的最主要手段。 1 .建议使用lint检查去除无效代码 lint去除无效资源和代码 如何检测哪些图片未被使用 点击菜单栏 Analyze -> Run Inspection by Name -> unused resources -> Moudule ‘app’ ->...

Aerfa789的博客 562

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

PHP代码优化的40条建议

作为一个php程序员们必须知道的PHP代码优化的40条建议: 1.如果一个方法可静态化,就对它做静态声明。速率可提升至4倍。 2.echo 比 print 快。 3.使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接。 4.在执行for循环之前确定最大循环数,不要每循环一次都计算最大值。 5.注销那些不用的变量尤其是大数组,以便释放内存。 6.尽量避免使用__get,__s

xpisme 413

PHP代码优化的方法

PHP代码优化的目的是为了提高PHP程序的执行效率,编写PHP代码时,可以从以下方面着手优化: 1. 用单引号代替双引号来包含字符串 2. 如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。 3. 用echo代替print 4. 及时注销不用的变量,尤其是大数组,以便释放内存 5. 尽量避免使用__get(),__set(),__autoload()

彳亍 810

阿里一面:你做过哪些代码优化?来一个人人可以用的极品案例

这里尼恩给大家展示一个简单、又可以称之为极品、又是人人用得着的案例:后端接口返回结果的二次封装优化。此案例,既能展示大家对代码优雅的追求,也能展示大家对spring框架的雄厚内功,如果面试的时候如数家珍,能让面试官爱到 “刮目相看”。

架构师尼恩 4151

Android-一些关于代码优化的事儿

Android-一些关于代码优化的事儿 内容来自这里:http://www.madhome.org/read.php?tid=1769 直接引用了,唉,看来有不少细节要注意。 简介 对于占用资源的系统,有两条基本原则:不要做不必要的事 不要分配不必要的内存 所有下面的内容都遵照这两个原则。 有些人可能马上会跳出来,把本节的大部分内容归于“草率的优化”(参见[The Root of

阿赞的专栏 468

PHP代码优化,40 Tips for optimizing your php Code

Tips for optimizing your php Code 原文地址:http://reinholdweber.com/?p=3 中译文作者yangyang(aka davidkoree) If a method can be static, declare it static. Speed improvement is by a factor of 4. 如果一个方法可静...

baidu1966的博客 238

你理解 PHP 中的静态方法吗?

它仍然是一个有争议的话题。让我们尝试了解原因。 函数中的静态变量 您可能已经看过以下代码: function testStatic() { static $x = 0; $x++; return $x; } 在这里,我们每次调用testStatic()时,关键字static允许递增$x: testStatic(); testStatic(); ...

weixin_43814458的博客 249

php代码优化细节

转载URL:http://bbs.aliyun.com/mobile/index.php?m=mobile&c=read&a=run&tid=265590 作为一个php程序员们必须知道的PHP代码优化的40条建议: 1.如果一个方法可静态化,就对它做静态声明。速率可提升至4倍。 2.echo比print快。 3.使用echo的多重参数(译注:指用逗号而不是句...

cy的博客 193

PHP代码优化建议

PHP代码优化建议 用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。 如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。 row[′id′]的速度是r......

heshihu2019的博客 352

Java基础static的探究

static方法就是没有this的方法。 在static方法内部不能调用非静态方法, 但是在非静态的方法中可以调用静态的方法和变量。 而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。 总之一句话:静态的变量或方法在这个类加载后就可以调用,静态依托于类,非静态的成员变量依托于对象,必须new出来一个对象才能用 st...

weixin_30294021的博客 76
上一篇: No qualifying bean of type xxx
下一篇: 回顾堆内存大小设置
至学者
博客等级 码龄9年 180粉丝 773原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值