代码瘦身优化实践
代码 优化 实践 瘦身
2023-06-13 09:16:03 时间
史蒂夫.乔布斯说,”复杂的终极境界是简单“,同样的优雅的代码一定是精简明了,可读性好。
使用LocalDate和LocalDateTimeLocalDate精确到日期,LocalDateTime精确到时分秒。 优化前14行代码
SimpleDateFormat sdfDay = new SimpleDateFormat( yyyy-MM-dd SimpleDateFormat sdfMins = new SimpleDateFormat( yyyy-MM-dd HH:mm:ss Date now = new Date(); String today = sdfDay.format(now); String waterStart = today + 03:00:00 String waterEnd = today + 04:00:00 Date waterStartTime = sdfMins.parse(waterStart); Date waterEndTime = sdfMins.parse(waterEnd); }catch (ParseException pe) { return XX;
优化后3行代码
LocalDateTime now = LocalDateTime.now(); LocalDateTime waterStart = LocalDateTime.of(now.getYear(), now.getMonth(),now.getDayOfMonth(),3,0); LocalDateTime waterEndTime =LocalDateTime.of(now.getYear(), now.getMonth(),now.getDayOfMonth(),4,0);默认值使用Optional
优化前五行
if (null == status) { param.put( status , new ArrayList String } else { param.put( status , status);
优化后一行,使用JDK8的Optional
Optional.ofNullable(status).orElse(new ArrayList String
如果是字符串可以用
StringUtils.defaultIfEmpty(status, )字符串累加
字符串只要不在for循环里累加,可以直接用+号,因为编译成字节码后会变成StringBuilder,如果在for循环里面用+号会生成多个StringBuilder,所以在for循环里累加最好在循环外创建StringBuilder。 优化前五行
StringBuffer sblog = new StringBuffer(); sblog.append( waterDriven|sellerId= sblog.append(request.getSellerTaobaoId()); sblog.append( |result= sblog.append(isSuccess);
优化后一行
String sblog= waterDriven|sellerId= +request.getSellerTaobaoId()+ |result= +isSuccess;
以上场景用逗号和等号连接数据,使用GUAVA的Joiner更精简,可读性更好
String sblog=Joiner.on( | ).withKeyValueSeparator( = ) .join(ImmutableMap.of( sellerId , request.getSellerTaobaoId(), result , isSuccess))LIST TO MAP
优化前4行
Map String, String AssetsMetaIdMap = Maps.newHashMap(); for (AssetsInfoBO assetsInfoBO : request.getAssetsCollectionList()) { AssetsMetaIdMap.put(assetsInfoBO.getAssetMetadataId(), assetsInfoBO.getAssetMetadataId());
优化后1行
Map String, String AssetsMetaIdMap = request.getAssetsCollectionList().stream().collect(Collectors.toMap(Hosting::getAssetMetadataId, Hosting::getAssetMetadataId));
如果key重复会抛出异常
Exception in thread main java.lang.IllegalStateException: Duplicate key 80000减少不需要的判断
优化前5行
String requestId = null; if (null != request.getExtData()) { requestId = request.getExtDataValue(REQUEST_ID_KEY); return requestId;
优化后1行
return request.getExtDataValue(REQUEST_ID_KEY);去掉else
优化前5行
if (null != result StringUtils.isNotBlank(no)) { return no; } else { throw new RuntimeException( XX
优化后4行
if (null != result StringUtils.isNotBlank(no)) { return no; throw new RuntimeException( XX不要返回布尔
优化前5行
if ( true .equalsIgnoreCase(value.toString())) { invoke = true; } else { invoke = false;
优化后一行
invoke = true .equalsIgnoreCase(value.toString());使用级联
优化前5行
ParamBO paramBO = new ParamBO(); paramBO.setId(1); paramBO.setName(”ifeve“); paramBO.setOld(7);
优化后1行
new ParamBO().withId(1).withName( ifeve ).withOld(7);
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/60459.html
jd相关文章
- idea代码编辑器_idea不会自动提示代码
- Git 分支合并分支代码
- 优化zblog文章及列表页友好显示时间的PHP代码
- WordPress6.1.0中文正式版及优化代码
- 再谈HashMap:使用map优化代码,你得学我这样做
- 9个Python 内置装饰器: 显著优化代码
- R语言梯度提升机 GBM、支持向量机SVM、正则判别分析RDA模型训练、参数调优化和性能比较可视化分析声纳数据|附代码数据
- 热门方向Top4:大前端监控、移动端性能与效率优化、团队可持续发展、低代码|GMTC 北京站圆满落幕
- 【算法】动态规划 ⑥ ( 骑士的最短路径 II | 问题分析 | 代码示例 )
- 使用 Stream API 高逼格 优化 Java 代码!
- 【CSS】课程网站 Banner 制作 ③ ( Banner 栏右侧课程盒子测量及样式 | Banner 版心盒子模型右侧课程栏代码示例 )
- SyntaxHighlighter代码高亮插件详解编程语言
- MySql前面加什么?25字疑问探讨MySql数据库的使用,是否需要在前面添加什么预处理代码以优化效率。(mysql前面加)
- MySQL代码过长的优化方法汇总(mysql中代码太长)
- MySQL数据库中如何使用代码创建表(mysql中代码创建表)
- Redis连接编码技巧快速入门(如何写redis连接代码)
- 一个基于ROW_NUMBER()的通用分页存储过程代码
- 兼容性比较好的PHP生成缩略图的代码
- php中根据某年第几天计算出日期年月日的代码
- PHP与C#分别格式化文件大小的代码
- php学习笔记数组遍历实现代码
- JQuery获取当前屏幕的高度宽度的实现代码
- android设置圆角图片实现代码
- 解析Android开发优化之:从代码角度进行优化的技巧
- php代码书写习惯优化小结