理论算法
理论收获
活灬灬着
人生不过图一乐。其乐何解?
展开
-
单接口生成测试驱动数据
- { url : 10 }- { param : 'name', normal : '张三,李四', abnormal : 'null' }- { param : 'age', normal : '0,50', abnormal : '-10,50.5' }- { param : 'sex', normal : '男,女', abnormal : 'null' }- { jsonTemplate: '{ "name":"nameV",原创 2020-12-07 10:40:13 · 134 阅读 · 1 评论 -
新入职快速指南-测开岗
第一天-领物品,申账号,听业务,搭环境注意事项:领物品时候可以询问能够申请一些辅助办公用品,比如显示器和hub;申请账号建议使用相同密码或者相同密码后边加上不同账号名;听业务会分,公司主流业务和组内负责业务,记好业务链接地址;搭环境一般都会有Idea、jdk使用版本、Git、Navicat、maven、xps、xmind;4.1、idea和Navicat建议先使用试用版,大概一个月,直接下载安装就可以,日后同事熟悉了在沟通科学版;4.2、idea整合git非常方便,不熟悉的请跳转idea下使原创 2020-06-11 17:41:32 · 345 阅读 · 0 评论 -
分布式锁-订单流程在查询之前加锁-避免不同节点重复相同的工作
问题发现:熟悉公司客服改价退款关单流程,发现分布式锁加在查询流水之前,没有在修改操作之前加,提前了好多查询之前。收获:分布式锁有两个作用:效率、正确性效率:使用分布式锁可以避免不同节点重复相同的工作,这些工作会浪费资源。比如用户付了钱之后有可能不同节点会发出多封短信。正确性:加分布式锁同样可以避免破坏正确性的发生,如果两个节点在同一条数据上面操作,比如多个节点机器对同一个订单操作不同的流程有可能会导致该笔订单最后状态出现错误,造成损失。详细参考链接...原创 2020-06-10 17:50:01 · 467 阅读 · 0 评论 -
Java全排列
思路:Ann=Cn1*Cn-1…用第一位与后边依次交换相当于Cn1,递归调用开始位 第一位交换 第二位交换 st=0 i=0 00交换 ->st`=1 i=1 11交换 ->st``=2 打印原数组 i=2 12交换 ->st``=2 打印第二位交换后 i=1 01交换 ->st`=1 i=1 11交换 ->st``=2 打印第一位交换后的数组原创 2020-06-04 12:24:37 · 106 阅读 · 0 评论 -
Java数组中出现次数最多的数
思路:使用hashMap,key存放数值,value存放出现次数public static Map<Object, Integer> getTopTimes(int [] arr){ /** *获取数组中出现次数最大的数 */ Map<Object,Integer> map = new HashMap<>(); Integer topExitNum =arr[0]; Integer times = 0;原创 2020-06-04 11:32:20 · 729 阅读 · 0 评论 -
Java快排
思路:挖坑填数,原理视频链接public static void quickSort(int[] data, int start, int end) { if (data == null || start >= end) return; int i = start, j = end; //左边第一元素做界点,左边有坑 int pivotKey = data[start]; while (i < j) { //左边有坑,原创 2020-06-04 11:30:26 · 238 阅读 · 0 评论 -
Java获取数组中前几位最大数
思路:使用堆排序是最节省时间,但是堆排序原理好懂,手敲代码太费精力,时间久了也会忘记细节,本篇使用JDK自带java.util包下TreeSet,TreeSet基于TreeMap实现,TreeMap基于红黑树利用TreeSet重写compareTo方法指定排序规则public static void main(String[] args) { //被测数组 int[] a = {3,8,4,2,3,8,1,5,7,0,11,21,22,23,24,12,13,14,44,45,8原创 2020-06-04 10:28:14 · 2241 阅读 · 1 评论