下面都是从PMD规则中总结的一部分代码优化建议:
1.局部变量只被赋值一次可以声明为final
说明: 使用final标识后,Java在编译的时候会自动把变化替换成常量,这样程序的运行效率就会提升
2.如果传入长度为1的字面意义参数,这调用String.startsWith 可以使用 String.charAt(0) 方法节省运行时间
说明:关于这点比较好理解,String对象本身就是char数组,String.startsWith方法在内部处理比较复杂,又有循环比较操作,所以效率远不及charAt操作。
“Abc”.startsWith(“A”) //bad
“Abc”.charAt(0) == ‘A’ //good
3.字符串拼接,使用StringBuffer,而不是直接使用”+”操作符进行拼接
说明: 关于这一点,大家都有认识。因为直接的String对象拼接,会产生新的String的对象进行存储。StringBuffer则会申请一个较大的内存空间(char数组), 针对拼接,如果没有超过char数组大小就直接追加到该数组尾部. 注意StringBuffer默认大小是16个字符,所以建议大家使用时指定创建的数组大小。
4.String 的indexOf方法,如果参数单个字母,则使用char
Abc”.indexOf (“A”) //bad
Abc”.indexOf(‘A’) //good
说明:String indexOf 方法,针对String和char的查找是使用了两个方法,有兴趣的同学可以看一下String的原代码,查找String的方法要比查找char方法复杂,相对耗时
5.建议不要使用无参的StringBuffer构造函数(该初始长度为16个字符)
说明: 大家可能对StringBuffer有一些误解,认为StringBuffer初始的空间比较大,但实际上其默认创建的大小只是16个字符的数组,一旦超过后,需要新申请的数组空间,这个就会有额外的开销。
发表评论
-
JAVA一些用于作标志位的一些接口
2015-10-11 13:18 907Java 中 有很多接口内容为空的 ,基本上是用来做标 ... -
企业架构
2015-10-11 13:13 743企业架构 -
场景经验
2014-12-11 13:13 596锁链的使用场景: 游戏行业最简单的例子,A玩家,B玩 ... -
JVM优化
2014-12-11 13:12 764锁消除参数(需要加上逃逸分析来对变量作用域进行 ... -
BeanUtils.copyProperties VS PropertyUtils.copyProperties
2014-11-19 20:17 627BeanUtils.copyProperties VS ... -
JVM优化
2014-09-29 20:24 0锁削除参数(必须开启逃逸分析) -XX:+D ... -
ServerSocket backlog参数解析
2014-09-28 14:24 1080已经经过小弟的手动测试 转载(http://blog.csd ... -
锁粗化测试
2014-07-03 20:01 846锁粗化 可以用来 ... -
java虚拟机内存模型
2014-07-03 19:30 767... -
String.intern 在java 6,7 和8中的使用- 字符串常量池
2014-05-21 17:05 8952String.intern in Java 6, 7 ... -
基本类型转String 和字符串连接机制
2014-05-21 17:03 3246Primitive types to String conv ... -
spring的autowire详解
2013-11-24 23:09 2009spring 中 autowire 经常使 ... -
项目中总结一些小经验
2013-11-13 09:18 824最近接手别人的项目中,遇到了许多坑,故作了些 ... -
镜像队列阐述(翻译)
2013-07-27 08:26 749http://activemq.apache.org/mi ... -
如何定位java.lang.NoSuchMethodError
2012-12-15 21:55 1020在运行 ... -
like 查询注意事项
2012-04-22 17:35 973http://rdc.taobao.com/team/ ... -
hibernate
2012-04-18 13:57 796在hibernate中,用hql语句查询实体类,采用l ... -
正则表达式 贪婪与堕落
2012-03-09 11:24 825String str = "start [I ... -
jvm内存管理笔记二
2012-02-29 00:12 1073选自毕玄的<<分布式java应用> ... -
jvm内存管理笔记一
2012-02-28 23:32 923节选自毕玄<<java分布式应用& ...
相关推荐
组队原则 读题注意项 选题注意项 写代码注意项 交代码注意项 多讨论 细心
使用注意力机制完成二分类任务,数据格式是csv文件,最后一列是target,列名为特征名称。 使用的是keras库,文件格式是ipynb,可在jupyter上运行。
`Keras框架-Attention代码1.txt`和`Keras框架-Attention代码2.txt`可能包含实现不同类型的注意力层的示例,例如简单加权注意力(Simple Weighted Attention)和自注意力(Self-Attention),也称为Transformer注意力。...
4. **源代码注意事项**: - 许可和来源:你提到代码来源于互联网,使用他人代码时要注意版权问题,确保遵循开源许可证规定,或在合适的情况下给予原作者署名。 - 安全与效率:内存扫描可能会消耗大量资源,需要...
eladmin自动代码生成步骤以及注意事项 eladmin是一款基于SpringBoot的自动代码生成工具,旨在帮助开发者快速生成前端和后端代码,从而提高开发效率。下面将详细介绍eladmin自动代码生成的步骤和注意事项。 步骤一...
代码注释的13条注意事项 作为一名IT专业人士,我将对代码注释的13条注意事项进行详细的解释和分析。 1. Comment each level(每个级别的注释有统一的风格) 在编写代码时,注释是非常重要的一部分。对于不同的...
CBAM注意力机制(MatLab代码实现)
注意力机制代码 在这个示例中,我们使用PyTorch实现了一个基于Luong注意力机制的Attention模型类。代码中包括__init__方法用于初始化可学习参数W_a和v_a,以及forward方法用于计算注意力权重和上下文向量。需要注意...
在`Keras框架-Attention代码1.txt`和`Keras框架-Attention代码2.txt`中,我们可以看到如何在Keras中实现注意力机制。Keras是基于Python的深度学习库,易于使用且支持多种后端,包括TensorFlow。注意力机制在Keras中...
Java代码走查注意点 Java 代码走查是软件开发中的一项重要任务,它可以帮助开发者发现和修复代码中的错误和不良实践。以下是 Java 代码走查过程中的注意点: 1. 尽量避免使用 import* 导致的问题 在 Java 代码中...
标题中的“Capsule-master_恶意代码_双向LSTM+胶囊网络+注意力机制_文本分类_恶意代码API序列分类”揭示了这是一个使用高级机器学习技术,特别是深度学习模型,来识别和分类恶意代码API序列的项目。这个项目的核心是...
这个压缩包提供的是一套基于Matlab实现的相位谱视觉注意机制的源代码,对于理解该机制以及进行相关研究具有重要价值。 相位谱视觉注意机制借鉴了人类视觉系统的工作原理,特别是在处理复杂视觉环境时的注意力选择性...
G代码和M代码的使用注意事项 在使用G代码和M代码时,需要注意以下几点: * G代码和M代码不能同时使用在同一程序段中。 * M代码不能单独使用,需要与G代码结合使用。 * 在使用M代码时,需要注意机床的实际情况,...
Gobal Attention的目的:是为了在生成上下文向量(也可以认为是句向量)时将所有的hidden state都考虑进去。Attention机制认为每个单词在一句话中的重要程度是不...本代码采样keras2.2.4\tensorflow1.12进行实现的。
微信幸运大转盘 及 刮刮乐 代码 注意 没有后台管理,只有前端效果代码
备份数据库-备份网站-打开网站脚本代码以及注意事项 备份数据库-备份网站-打开网站脚本代码以及注意事项 备份数据库-备份网站-打开网站脚本代码以及注意事项 备份数据库-备份网站-打开网站脚本代码以及注意事项
写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.161全局变量的作用域_161- 2024-06-13三阶段-课前小分享_小分享1....
标题"使用PyTorch框架实现的各种注意力机制代码"表明,这个压缩包中包含了一系列用PyTorch编写的注意力机制的实现,这些代码可能涵盖了从基础的自注意力到更复杂的结构,如Transformer模型中的多头注意力(Multi-...
压缩感知相关参数、重构的方法等代码,具体说明如下 Measurement matrixs :存有多种测量矩阵的实现代码 Reconstruction ...注意:此中代码多为 .m 文件,且每个路径中都有相关的txt文件说明各自所实现的内容!
PYTHON做贪吃蛇代码 PYTHON做贪PYTHONPYTHON做贪吃蛇代码做贪吃蛇代码 吃蛇代码 PYTHON做贪吃蛇代码PYTHON做贪吃蛇代码PYPYTHON做贪吃蛇代码THON做贪吃蛇代码PYTHON做贪吃蛇代码PYTHON做PYTHON做贪吃蛇代码贪吃蛇...