2023-07-31 还在用 list.contain 做去重?该换换了! 还在用 list.contain 做去重?该换换了! 最近又是一轮代码review , 发现了一些实现去重的代码,在使用 list.contains ......我沉思,是不是其实很多初学者也存在这种去重使用问题?所以我选择把这个事情整出来,分享一下。1首先是造出一个 List<String> 模拟数据,一共2W条,里面有一半数据1W条是重复的:public static List<String> getTestList() { List<String> list = new ArrayList<>(); for (int i = 1; i <= 10000; i++) { list.add(String.valueOf(i)); } for (int i = 10000; i >= 1; i--) { list.add(String.valueOf(i)); } return list; } 先看看我们用 contain 去重的代码:/** * 使用 list.contain 去重 * ... 王子 2023-07-31 技术与技巧 310 阅读 1 评论 2023年07月31日 310 阅读 1 评论
2022-10-11 利用nginx+keepalived实现高可用 利用nginx+keepalived实现高可用 最近在离线环境下做 nginx+keepalived 实现高可用的负载均衡,离线环境下安装真的是十分费劲。以下就以国产麒麟为例安装 keepalived-2.2.7 + nginx1.23.1。概述Nginx 可以用来作为反向代理服务器,来提供负载均衡的能力,使我们的 Web 服务器,能够水平扩容,从而处理更多的用户请求,但是反向代理服务器又变成了一个单点,当反向代理服务器挂了,整合 Web 服务器就不能被外界访问到,所以我们必须要保证反向代理服务器的高可用。而 Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 Web 前端服务的高可用。方案规划注:VIP 为虚拟 IP ,不被占用前提下可自定义。VIP服务器 IP主机名nginx 端口默认主从192.168.5.200192.168.5.249ethan380MASTER192.168.5.200192.168.5.103localhost.localdomain80BACKUP外网用户方案3.1 安装 Nginx两个服务器上安... 王子 2022-10-11 技术与技巧 327 阅读 3 评论 2022年10月11日 327 阅读 3 评论
2022-09-21 RABC权限系统,你会设计吗,老王教你设计 RABC权限系统,你会设计吗,老王教你设计 RBAC权限分析RBAC 全称为基于角色的权限控制,本段将会从什么是RBAC,模型分类,什么是权限,用户组的使用,实例分析等几个方面阐述RBAC思维导图绘制思维导图如下什么是RBACRBAC 全称为用户角色权限控制,通过角色关联用户,角色关联权限,这种方式,间阶的赋予用户的权限,如下图所示对于通常的系统而言,存在多个用户具有相同的权限,在分配的时候,要为指定的用户分配相关的权限,修改的时候也要依次的对这几个用户的权限进行修改,有了角色这个权限,在修改权限的时候,只需要对角色进行修改,就可以实现相关的权限的修改。这样做增加了效率,减少了权限漏洞的发生。模型分类对于RBAC模型来说,分为以下几个模型 分别是RBAC0,RBAC1,RBAC2,RBAC3,这四个模型,这段将会依次介绍这四个模型,其中最常用的模型有RBAC0.RBAC0RBAC0是最简单的RBAC模型,这里面包含了两种。用户和角色是多对一的关系,即一个用户只充当一种角色,一个角色可以有多个角色的担当。用户和角色是多对多的关系,即,一个用户可以同时充当多个角色,一个角色可以有多个用户。 此系统功能单一,人员较少,这里举个栗... 王子 2022-09-21 Java,springboot,技术与技巧 350 阅读 0 评论 2022年09月21日 350 阅读 0 评论
2022-09-21 为了使用新技术,我从 Java8 升到了 Java11 为了使用新技术,我从 Java8 升到了 Java11 把一个项目从 Java 8 迁移到 Java 11,我该怎么办呢?最简单的办法,当然是直接强行升级,遇到一个错就改一个错,别看它 low,但是对于一个小型且非核心的项目来说,已经足够了。当然,对于比较重要的项目,且代码行数不少的情况,最标准的姿势就是对着官方文档,就是这份 Java 11 的迁移说明文档。https://docs.oracle.com/en/java/javase/11/migrate/index.html里面详细说明了 Java 8 到 Java 11 可能出现的兼容性问题,并给出了修改措施或建议。理论上来说,对着官方文档一个字一个字去读,并且把代码的每一行都肉眼扫描一遍,该修改的地方就做出修改,肯定是可以完美迁移的。但人毕竟不是机器,自己写的代码可能就有上千甚至上万行,还得算上引入的第三方类库,这显然就不是人干的事情了。所以,就有一款神奇的工具,可以帮我们自动扫描 JDK 升级过程中需要修改或注意的地方,并直接生成一个可视化的 HTML 报告,厉害了!它是什么这款工具的名字叫做 EMT4J,即 Eclipse Migration Toolkit for Jav... 王子 2022-09-21 Java,技术与技巧 561 阅读 3 评论 2022年09月21日 561 阅读 3 评论
2022-09-21 Excel办公技巧:巧用分类汇总功能批量合并相同内容单元格 Excel办公技巧:巧用分类汇总功能批量合并相同内容单元格 应用案例将下图工作表中相同组别的单元格进行合并,比如A2和A3单元格中的内容同为“1组”,将两个单元格进行合并。操作步骤1 选中工作表数据区域的任一单元格,这里选择A1单元格,在“数据”选项卡“分级显示”功能组中单击“分类汇总”按钮。2 在弹出的“分类汇总”对话框中,设置“分类字段”为“组别”,“选定汇总项”为“组别”,单击“确定”按钮。此时,在原数据区域左侧会新增一列分类汇总列。3 选中A2:A10单元格区域,同时按CTRL+G组合键调出“定位”对话框,在对话框中单击左下方的“定位条件”按钮。4 在弹出的“定位条件”对话框中,选择“空值”,单击“确定”,这样就能选中A2:A10单元格区域所有的空白单元格。5 在“开始”选项卡“对齐方式”功能组中单击“合并后居中”按钮,这样A列中被选中的空白单元格就进行了合并居中,合并区域与B列中要合并的区域正好相对应。6 选中数据区域任意一个单元格,在“数据”选项卡“分级显示”功能组中单击“分类汇总”按钮。7 在弹出的“分类汇总”对话框中单击“全部删除”按钮,此时,表格A列中的分类汇总项被删除。8 选中A列中的合并区域A2:A8单元格,在“开始... 王子 2022-09-21 技术与技巧 239 阅读 0 评论 2022年09月21日 239 阅读 0 评论