当前位置: 首页 > news >正文

不懂代码怎么做网站排名轻松seo 网站

不懂代码怎么做网站,排名轻松seo 网站,企业门户网站建设优势,乐陵人民医院电话咨询24小时文章目录 1、线程池的使用2、MD5算法的使用3、多用枚举类 整理下近期干活儿遇到的一些坑。 1、线程池的使用 不合理点1:jstack线程转储发现,有几万个线程,查看代码发现,线程池放在方法内部或者循环体中创建,尽管方法…

文章目录

  • 1、线程池的使用
  • 2、MD5算法的使用
  • 3、多用枚举类

整理下近期干活儿遇到的一些坑。

1、线程池的使用

不合理点1

jstack线程转储发现,有几万个线程,查看代码发现,线程池放在方法内部或者循环体中创建,尽管方法最后有shutdown关闭线程池,但一定并发调用下线程数量会激增

改进:

使用成员变量放线程池

不合理点2:

非单例Bean,或者一个普通的类中,线程池放成员变量了,但没有static修饰,正好其所在类被大量创建对象,一个对象一个线程池,大量线程池被创建

在这里插入图片描述

改进:

使用static修饰成员变量,即某个属性所有对象都相同,与之相反的是实例变量,即某个属性一个对象一份,如名字、身高

2、MD5算法的使用

不合理点:

调用一个三方接口,有个请求参数accesskey,其可能包含反斜线、等号🟰等特殊字符,直接传可能导致接口调用失败,甚至SQL执行出错,影响系统数据

改进:

考虑做一个MD5加密,输出一个定长字符串

补充:

关于MD5算法:Message-Digest Algorithm 5,可以将任意长度的数据映射为固定长度(通常为128位)的哈希值,该过程不可逆(无法从哈希值反推原始数据),多用于数据完整性校验

输入任意长度的数据 → 经过多轮循环处理 → 输出固定长度的128位哈希值(通常表示为32位十六进制字符串)

需要注意MD5有安全性问题:不同的输入可能生成相同的哈希值(目前已构造出大量碰撞案例),因此,不适用于:

  • 密码存储(应使用 bcrypt、Argon2 等算法)。
  • 数字签名或高安全场景。

仅推荐用于:非敏感数据的快速校验,如文件完整性检查

3、多用枚举类

代码中多用枚举类代替直接创建的字符串,常用的枚举形式一:

public enum StatusEnum {SUCCESS,RUNNING
}
//代替大量的"SUCCESS"字符串
StatusEnum.SUCCESS.name()

形式二:加一个display,而不是name()后转小写,更加有灵活性

@Getter
public enum ClusterTypeEnum {RABBITMQ("rabbitmq"),MQTT("mqtt");private final String displayName;ClusterTypeEnum(String displayName) {this.displayName = displayName;}}

形式三:用于传参字段上,直接将枚举类型和String在序列化和反序列化时自动转换,如此Dto类中可以直接用枚举类型的变量,而不再要求非得String,同样的,序列化时,也会把枚举转成String:

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;@Getter
@AllArgsConstructor
public enum OrderFieldEnum {CREATE_TIME("createTime", "create_time"),NAME("name","name");private final String value;  //值private final String field;  //对应数据库中的字段,方便后面写业务和Mapper层代码private static final Map<String, OrderFieldEnum> map = new HashMap<>();//@JsonCreator标记一个构造函数或静态工厂方法,告诉 Jackson 在反序列化 JSON 时应该调用该方法来创建对象实例。@JsonCreatorpublic static OrderFieldEnum check(String value) {//这里的判断map为空则遍历枚举类的值放进Map中//这个操作和上面的利用类加载时机初始化Map集合一个目的if (map.isEmpty()) {for (OrderFieldEnum orderFieldEnum : OrderFieldEnum.values()) {map.put(orderFieldEnum.getValue(), orderFieldEnum);}}//如果在Map中找不到对应的key和传入的字段相等,则认为非法传参,即不支持这个排序字段if (!map.containsKey(value)) {throw new MyExceptionHandler("不支持这个排序字段");  //自定义异常,在全局异常处理器处理}//否则返回整个枚举对象return map.get(value);}//@JsonValue标记一个方法,将该方法的返回值直接作为 JSON 的值,而不是将整个对象序列化为 JSON 对象//使用场景:当某个类本身不需要完整的 JSON 表示,只需要输出其中一个字段的值时@JsonValuepublic String getValue() {return value;}
}

详见:https://llg-notes.blog.csdn.net/article/details/130997300

http://www.15wanjia.com/news/16176.html

相关文章:

  • 公司组织架构如何优化网页加载速度
  • 网站建站需要什么营销策划培训
  • 哪个网站建设公司靠谱关键词云图
  • 政府法制网站建设问题百度电脑网页版入口
  • 南京制作网页培训班优化法治化营商环境
  • 医院门户网站制作黑马教育培训官网
  • 建筑公司网站源码下载百度app下载
  • 导航网站教程零基础seo入门教学
  • 公司内部网站如何备案精准网站seo诊断报告
  • 网站建设维护工作总结seo怎么做优化工作
  • 手机版网站如何做数字营销软件
  • wordpress bt站搭建友情链接建立遵循的原则包括
  • 电商网站开发方案seo是什么职位的简称
  • 刚做的网站怎么收录google浏览器入口
  • 罗湖网站制作多少钱网络营销推广专家
  • 手机网站建设事项城市更新论坛破圈
  • 网站参数错误怎么解决方法关键词排名优化公司
  • 如何做论坛网站 知乎流量精灵
  • 站群管理系统cms公众号如何推广
  • 什么网站可以做试卷宁德市房价
  • 浙江做铁塔的公司网站中国域名注册局官网
  • 邢台做移动网站公司电话号码就在刚刚武汉宣布最新消息
  • 手机上自己如何做网站如何推广一个平台
  • 番禺做网站服务成人培训机构
  • 为什么我做的网站不是加密访问怎么创建自己的游戏网站
  • 如果做网站报价杭州seo俱乐部
  • 关于织金县网站建设的论文seo模拟点击工具
  • 上海市奉贤区建设局网站网站推广宣传语
  • 怎样做推广网站郑州做网站推广资讯
  • 昭通做网站百度推广客服中心