局部方法的形参定义为final,是否会提升程序的性能?

问题描述

发现有个同事总喜欢将局部方法的参数全部定义为final的,如:public static void debug(final Logger logger, final boolean enableCheck, final Object message, final Throwable t){}在方法体中也并没有用到内部类。我想问的是这样的写法对程序的性能是有有影响?如果有,有什么影响,为什么?我只知道final修饰基本类型,会在编译器优化掉。

解决方案

final并不会给整个程序带来性能的提升,你同事这么做的目的可能只是为了防止别人随意修改参数的值。。。 具体你可以问问你同事,这个可以沟通。。。
解决方案二:
下面两份代码生成的字节码是完全相同的。public class Test {public void test(String aaa) {}}public class Test {public void test(final String aaa) {}}~~~~~~~~~~~~~~~~~~~~~~~~如果不存在内部类的话,局部变量(或者参数)上修饰的final只是在编译期有效。字节码是不包含此信息的,所以和运行效率一点关系也没。对于编译期的影响,final用来限制对变量的再次赋值。这可能是一种编程习惯---一般总是保持函数入口参数不变。另外,对阅读代码的人,可能会清晰一点。(其实也未必,现在的IDE工具,都有标识符高亮的功能,想看到哪个变量都用于什么地方了,高亮后,被使用的地方就一目了然了)

时间: 2025-01-19 17:08:35

局部方法的形参定义为final,是否会提升程序的性能?的相关文章

全面优化ASP应用程序的性能的方法_应用技巧

                                          ASP 本身并不是一种脚本语言,它只是提供了一种使镶嵌在 HTML 页面中的脚本程序得以运行的环境,而在ASP中最常用的脚本语言就是VBScript了.虽然ASP的脚本语言很简单,但是要想让一个ASP程序能够最优化的运行也不是一件简单的事情.  现在国内的网络带宽很有限,网络十分拥挤,如何使得自己的ASP应用程序能够快速的运行就成为了每一个ASP程序员的梦想了.那就跟随我来一同加速你的ASP程序吧!  一. 有关

vc 如何创建服务-VC 开机自动启动。不用写注册表的方法。想写一个服务来启动这个程序。

问题描述 VC 开机自动启动.不用写注册表的方法.想写一个服务来启动这个程序. 有个EXE程序想要它开机自动启动.我不想用写注册表的方法启动.看能不能够写一个服务来启动这个程序.如果可以麻烦大家能够提供源码.谢谢!!!!! 解决方案 创建服务,CreateService()

在线等待,如何在程序中真接调如(百度,sohu.sogou)搜索片定义的关键字,比如我在程序中加入一个文本框,输入关键字后,点击百度搜索程序就直接调用百度搜索这个关键字,谢谢!

问题描述 在线等待,如何在程序中真接调如(百度,sohu.sogou)搜索片定义的关键字,比如我在程序中加入一个文本框,输入关键字后,点击百度搜索程序就直接调用百度搜索这个关键字,点sohu就调用SOHU,谢谢! 解决方案 解决方案二:我这有个百度的,我常用,你把下面的内容另存为HTML文件就行了.1.<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><!--savedfromurl=(0043)http:

全面优化ASP应用程序的性能的方法

ASP 本身并不是一种脚本语言,它只是提供了一种使镶嵌在 HTML 页面中的脚本程序得以运行的环境,而在ASP中最常用的脚本语言就是VBScript了.虽然ASP的脚本语言很简单,但是要想让一个ASP程序能够最优化的运行也不是一件简单的事情.  现在国内的网络带宽很有限,网络十分拥挤,如何使得自己的ASP应用程序能够快速的运行就成为了每一个ASP程序员的梦想了.那就跟随我来一同加速你的ASP程序吧!  一. 有关操作数据库的优化方法  我们使用ASP最主要的用途就是对数据库进行操作了,如何更快速

c++ get与set方法的宏定义实现

一.文章来由 国庆节依然顽强的码代码,项目中需要用到 get 和 set 方法,但是问题来了,因为是 c++ 的,并不像 java 的 eclipse 有自动生成 get 和 set 方法.如果手写是可以,但是当属性特别多的时候会非常麻烦...但是宏定义方法可以搞定这个问题~~ 二.具体代码 2.1 非指针类型成员变量 // PropertyBuilderByName 用于生成类的成员变量 // 并生成set和get方法 // type 为变量类型 // access_permission 为变

php 函数使用方法与函数定义方法_php基础

对于一个函数的语法是: 函数定义方法 复制代码 代码如下: function "function_name" (arg1, arg2...) { [code to execute] return [final_result]; } 其中[final_result]通常是从函数返回变量值. 让我们看一个例子 复制代码 代码如下: function double_this_number($input_number) { return $input_number*2; } 调用方法 复制代码

ajax-前台js调用后台Ajax方法 提示未定义

问题描述 前台js调用后台Ajax方法 提示未定义 后台方法以及注册AjaxWeb.config配置js调用就报错也应用了jquery.js这个文件本地直接运行时可以的,但是传到服务器就不行了!! 解决方案 ajax 前台js调用后台方法JS前台调用后台方法后台调用前台js的方法 解决方案二: ajaxpro使用的prototype和jquery会争用$的使用权出现冲呕吐.jquery要调用jQuery.noConflict()释放$的使用 而且注意aspx要存在runat=""ser

老毛挑简单提升U盘性能的方法

主流的U盘已经8G.16G了,写入速度相对显得不足,有一个方法可以修改一下系统就大大提升Windows 7下的U盘的性能. 对于向U盘传输大量小文件或者是在优盘上运行某个应用程序的情形下性能提升明显. 方法很简单, 首先打开设备管理器, 然后打开"磁盘"列表,可以看到系统连接上的各个盘,其中包括了你的优盘. 在这个优盘上点右键, 选择"属性", 打开"策略"选项卡, 可以看到两个选项, 一个是优化快速移除(Optimize for quick r

方法-Java Eclipsetomcat请求一段时间后,程序无反应,tomcat无错,程序无错。

问题描述 Java Eclipsetomcat请求一段时间后,程序无反应,tomcat无错,程序无错. tomcat执行请求后,程序执行一段时间后,程序就不执行了,tomcat没报错,程序也没错误,tomcat重启后在次执行之前没执行的代码OK没问题. 方法执行时间比较久,因为是数据库转换,从Oracle转Sqlserver,数据量较大. 如果我分批执行就可以,但是如果我一起全部执行的话,就会执行到一半的时候,就不执行了,很奇怪,求大神支招.求解决办法! 解决方案 会不会是事务太长到事连接超时,