- 博客(108)
- 资源 (2)
- 收藏
- 关注
原创 redis 对单个key进行大数据量incr
利用 redis incr 做超高并发延迟累加器(一亿数量级)前景提要:公司有一个字段,需要支持 qps 为 1000万。 但是可以将结果作为延迟结果发送过来,比如 20秒发一次结果。但是不能直接 incr 1000万次,redis即使是集群 也扛不住。提示: redis只有在网络读取请求利用了多线程,在磁盘io等处理数据方面依然是单线程。思路: 多应用示例部署,利用多应用本地jvm缓存,来进行分流,各应用本地之间近行多线程本地累加。利用时间段来提交多应用的累加结果,此时再利用incr原子特性进行多
2021-04-09 18:17:17 1358 1
原创 高中生都知道:Mybatis-Plus如何生成内置Sql的?
Mybatis-Plus如何生成动态sql的?通过调用Configuration的addmapper方法生成内置sql。并通过用户传入QueryWrapper参数可以在执行时动态生成条件判断的ql列。
2024-06-23 12:36:06 729
原创 idea 运行报错:Unrecognized option: --add-opens Error: could not create the java Virtual Machine
昨天写spring-test运行还好好的,今天来上班突然报错了。
2024-02-23 11:44:14 2110 2
原创 LRU自定义最近最少使用-java实现
2.这个题很锻炼自己的owner能力(感觉挑战底层类,不屈于写业务代码)首先想到的是链表,这里使用最普通的 listNode的结构体。4.这个题很锻炼自己的边界能力(各种边界条件需要测试)1.这个题很锻炼自己的编码能力(代码量多,结构多)最近最少使用 翻译下:把最后一个不使用的给踢出去。3.这个题很锻炼自己的耐力(调试比较麻烦)翻译:使用了就放队列前头,想移除就移除队尾。为什么要写博客记录下呢?队尾永远是最近最少使用的。使用的放到队列的前头。
2023-10-12 22:59:10 438
原创 flink-提交jar包 submit 报错未序列化
flink-提交jar包 submit 报错未序列化flink-web控制台 submit jar包 报错堆栈(org.apache.flink.runtime.rest.handler.RestHandlerException: Could not execute application. at org.apache.flink.runtime.webmonitor.handlers.JarRunHandler.lambda$handleRequest$1(JarRunHandler.java:107)
2022-03-25 10:13:47 10734 5
原创 优惠券最佳叠加算法(图深度搜索)
可叠加的优惠券最佳组合算法(Java)一:前提知识背景:给出一组优惠券,并给出优惠券叠加关系,优惠券权重业务规则:某个类型的券存在最多限制需求:求出优惠券在业务规则下最优组合(权重最大的组合)名词规定:图的团=图的集=图的完全子图二:业务问题转为数学问题当存在一组优惠券时,得到最优优惠券组合。首先将业务数据抽离为算法数据可得到如下图其中 0-5编号代表优惠券编码,优惠券之间连线代表两者是可以共同使用的。从数据结构上考虑,可以得知:这是一个无向有环图,问题不难转化为:求出有向无环
2022-03-20 16:48:48 5795 4
原创 git 回滚到指定版本
1.操作步骤git 回退到指定版本步骤:把你想回退的版本的commit id和最新版本的commit id记下来然后用命令git reset --hard 老版本的commit id再git reset --mix 最新版本的commit id再push 就ok了2.图文并茂记住当前版本 和 要回滚的旧版本号执行命令 进行本地回滚 并提交代码到 远程再执行操作 push 到远程即可感谢 旭东的知识转移...
2022-03-11 10:32:26 18627 2
原创 leetcode刷题记录
热题top10011. 盛最多水的容器原题地址给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最
2022-02-28 22:40:36 2136
原创 JAVA进程cpu非常高(400%)
JAVA进程cpu非常高(400%)一:起因一直收到报警说cpu过高,去服务器上执行 top命令发现纳尼 400% cpu那么高 为啥封顶不是100% 是因为一个cpu核算一个100%芭比Q了之前都是听别人解决过,自己还没解决过。一步一步来吧。二:解决办法2.1:尝试dump堆文件(结果太慢)通过top 查看使用率最高的进程然后像一个老手一样 去dump堆文件 jmap -dump:live,file=heap.bin 1674216742是我的进程id发现一个小时还没弄好 因
2022-02-24 10:42:01 3166 3
原创 玩转aop,对http业务数据进行装箱拆箱
玩转aop,对http业务数据进行装箱拆箱一:需求这里采用通俗的语言描述下需求前端发送的表单数据,需要将字段 NAME的内容 例如 ”ABCD“,前端没办法将 ABCD 转化为小写的 abcd但是服务端需要用到小写的 abcd,而且前端回显的时候,需要字段 NAME的abcd 转化为 大写的”ABCD"思路:http表单请求来,用aop将特殊字段替换http回显请求来,用aop将替换后的字段再还原由于不想入侵业务代码,这里我们写一个注解来进行切入。二:实现思路首先你要掌握Javas
2022-02-18 15:15:05 603
原创 LeetCode5.最长回文子串(Java实现)
一:题目描述原题链接5. 最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”提示:1 <= s.length <= 1000s 仅由数字和英文字母(大写和/或小写)组成二:解题思路(官方解法)如果 s = a 那么最
2022-02-03 14:20:19 967
原创 Flink同一个DataStream同时供多个业务使用
一:背景我们项目中用到Flink的Java客户端 用来做数据处理数据源:kafka发送源:kafka原来只有一个业务需求,可以理解为对mq消息中的一个字段做累计和。现在又多了两个业务需求,可以理解为对mq消息的其他字段做累加和。此时面临的问题是:flink 做完类似于 map filter keyby reduce 等算子操作时,是否只能为一个业务使用?如果可以供多个业务使用数据源,则我们不需要考虑如果只能供一个业务使用数据源,我们需要将同数据源的数据复制一份,或者复制一份客户端代码
2022-01-27 14:23:49 4208 2
原创 es报错all shards failed:Fielddata is disabled on text fields by default. Set fielddata=true on
今天新环境es客户端查询的时候发现这个异常java.lang.IllegalArgumentException: Fielddata is disabled on text fields by default. Set fielddata=true on [node_id] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant me
2022-01-14 18:31:00 2160
原创 LeetCode4.寻找两个正序数组的中位数(Java代码)
LeetCode4.寻找两个正序数组的中位数一:题目描述4. 寻找两个正序数组的中位数难度困难4868给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]
2022-01-11 20:25:08 503 1
原创 跳槽心路历程
心路历程1.2020年5月开始实习,小程序+后管+支付2.2020年8月辞职开始做秋招准备3.2020年11月上岸失败开始外包4.2021年4月上岸失败继续外包5.2021年6月毕业6.2021年7月在大厂做外包看到别人拿着红卡我拿着白卡非常的难受,开始边工作开始看算法视频7.2021年9月开始边工作边看中间件源码视频8.2021年10月由于工作太忙停止了学习9.2021年11月涨薪了10.2021年12月组长说有可能转正,但是他也是小小组长,需要特批。这事没准头。继续准备学习11.2
2022-01-11 10:50:06 365
原创 我要进大厂-算法-第九天(暴力递归~动态规划)
阅读该文章预计90分钟文章目录动态规划一:初步认识动态规划1.1:介绍递归和动态规划二:求阶乘2.1:思路讲解2.2:Java代码三:汉诺塔问题3.1:题目介绍3.2:思路讲解3.3:Java代码四:打印一个字符串的所有子序列,包括空串4.1:思路解析4.2:Java代码(递归)五:打印一个字符串的全排列5.1:思路解析5.2:Java代码动态规划一:初步认识动态规划1.1:介绍递归和动态规划暴力递归:把问题转化为规模缩小了的同类问题的子问题有明确的不需要继续进行递归的条件(base cas
2021-08-22 23:06:42 505
原创 我要进大厂-算法-第八天(贪心~好难呀)
阅读该文章预计90分钟文章目录一:前缀树1.1:举个例子说明前缀树1.2:作用1.3: Java代码二:贪心2.1:前提知识一:前缀树1.1:举个例子说明前缀树举个例子:"abc" 加到头节点如果头节点没有走向a的路,就创建一个a,依次建立a、b、c“bce" 加到头节点如果头节点没有走向b的路,就创建b,如果没有b-c的路,依次加入c、e”abd“ 加入到头节点头节点有走向a的路,那么来到a,有a-》b,来到b,没有b-d,则b的下面创建一个d总的来说,依次看看有没有头节点到
2021-08-20 22:14:21 675
原创 我要进大厂-算法-第七天(Hash所有问题)
阅读该文章预计20分钟文章目录一:设计RandomPool结构1.1:题目描述1.2:思路讲解1.3:Java代码二:岛屿问题2.1:问题描述2.2: 思路讲解2.3:Java代码一:设计RandomPool结构1.1:题目描述【题目】 设计一种结构,在该结构中有如下三个功能:insert(key):将某个key加入到该结构,做到不重复加入。delete(key):将原本在结构中的某个key移除。getRandom():等概率随机返回结构中的任何一个key。【要求】 Insert、del
2021-08-19 19:15:29 338
原创 我要进大厂-算法-第六天(二叉树所有问题,拿来吧你)
阅读该文章预计60分钟文章目录一:二叉树的遍历1.1:题目描述1.2:思路分析1.3:Java代码二:找到二叉树的后继节点2.1:题目描述2.2:思路讲解2.3:Java代码三:二叉树的序列化和反序列化3.1:题目介绍3.2:思路讲解3.3:Java代码四:判断是否是平衡二叉树4.1:思路讲解4.2:Java代码五:是否是搜索二叉树5.1:思路讲解5.2:Java代码六:是否是完全二叉树6.1:思路讲解6.2:Java代码七:完全二叉树的节点个数7.1:思路讲解7.2:Java代码一:二叉树的遍历1.
2021-08-19 12:14:07 529
原创 我要进大厂-算法-第五天(链表热点题)
阅读该文章预计30分钟文章目录一:复制含有随机指针节点的链表1.1:题目描述1.2:思路分析1.2.1:空间复杂度O(N)1.2.2:空间复杂度O(1)1.3:Java代码二:两个单链表相交的节点2.1:题目描述2.2:题目分析2.3:Java代码一:复制含有随机指针节点的链表1.1:题目描述【题目】 一种特殊的链表节点类描述如下: public static class Node { private int value; private Node next;
2021-08-11 20:32:54 115
原创 windows环境脚本一键拉git代码maven打包java项目
一:前提背景测试同学需要打包项目上传到容器服务器上,由于测试同学不会用idea、java、git、maven。导致学习成本增加,现写一个简陋的bat脚本,一键进行拉代码,切分支,更新分支为最新代码,根据指定环境进行打包,统一输出到指定目录下前提条件:安装jdk,并配置j环境变量安装maven,并配置环境变量安装git,并配置环境变量,并设置正确的用户名、密码二:脚本介绍共有三个脚本,作用分别为:下载代码并切到指定分支,更新指定分支的代码并打包,将编译好的包统一放到指定目录下first-
2021-08-06 10:07:46 947
原创 我要进大厂-算法-第四天(拿下链表)
阅读该文章需要60分钟文章目录一:旋转正方形矩阵1.1:题目描述1.2:详细思路1.3:Java代码二:反转单向链表、反转双向链表2.1:题目描述2.2:思路讲解2.3:Java代码三: 之字形打印矩阵3.1:题目描述3.2:思路讲解3.3:Java代码四:行和列都排好序,找数4.1:题目描述4.2:思路讲解4.3:Java代码五:打印两个有序链表的公共部分5.1:题目描述5.2:思路讲解5.3:Java代码六:判断链表是否为回文结构6.1:题目描述6.2:思路如下6.3:Java代码七:放到最后一:旋
2021-08-04 11:16:28 589
原创 我要进大厂-算法-第三天(栈和队列拿下)
一:数组实现栈、队列前提知识:栈先进后出,队列先进先出。1.1:数组实现栈1.1.1:题目描述:用数组结构实现大小固定的队列和栈1.1.2:思路如下:用数组存进来的数用一个变量指明最后一个数的位置(尾标志)push操作放入存的数据,尾标志向后移动一位pop操作取出最后一位的数据,尾标志向前移动一位1.1.3:Java代码package xyz.fudongyang.basic.class_03.my;public class Code_01_Array_To_Stack_Que
2021-07-28 15:30:45 630
原创 我要进大厂-算法-第二天(热频高级排序)
阅读该文章需要花费15分钟(网-师承左程云)一.荷兰国旗问题1.1 题目描述:给定一个数组arr,和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(N)1.2 思路先分析下,分析过程如下空间复杂度为1,则只能使用临时变量,不能开辟内存空间了,也就是不能申请辅助数组了。时间复杂度on,也就是只能遍历一遍数组。emmmm让我们学习下这个思路既然不能分配辅助数组,那我们的原数组要分为三
2021-07-15 16:19:14 598
原创 策略模式工作中的运用
一:前景提要前景:工作快一年了,近期的需求需要改动之前写的代码,新增加功能,看到一处代码,非常冗余,好多if else 判断,并且里面的逻辑是可重用的、可统一管理的。这是谁写的垃圾代码,于是我打开annotate with git blame发现是我去年写的代码。咳咳,情有可原,当时业务没那么复杂(其实当时不会策略模式)代码业务场景:判断多种控件上下游关系,校验控件参数。业务代码:/** * 遍历 nodeDataArray 初始化数据 * * @param
2021-07-14 17:18:34 469 2
原创 我要进大厂-算法-第一天(排序算法全家桶)
我要进大厂-算法-第一天阅读该文章需要花费15分钟(网-师承左程云)一:认识基本概念1.1 时间复杂度常数时间的操作:一个操作如果和数据量没有关系,每次都是 固定时间内完成的操作,叫做常数操作。时间复杂度为一个算法流程中,常数操作数量的指标。常用O (读作big O)来表示。具体来说,在常数操作数量的表达式中, 只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分 如果记为f(N),那么时间复杂度为O(f(N))。评价一个算法流程的好坏,先看时间复杂度的指标,然后再分 析不同数据样本下的实际
2021-06-28 22:52:35 548 1
原创 leetcode1195. 交替打印字符串(java实现)
题目原题连接leetcode1195题目描述:编写一个可以从 1 到 n 输出代表这个数字的字符串的程序,但是:如果这个数字可以被 3 整除,输出 “fizz”。如果这个数字可以被 5 整除,输出 “buzz”。如果这个数字可以同时被 3 和 5 整除,输出 “fizzbuzz”。例如,当 n = 15,输出: 1, 2, fizz, 4, buzz, fizz, 7, 8, fizz, buzz, 11, fizz, 13, 14, fizzbuzz。假设有这么一个类:class F
2021-06-17 18:35:11 429 1
原创 redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachable node in cluster
1.前提介绍redis: 5.0.0版本jdk:1.8之前还好着的,今天重新ci部署发现项目报错了2.报错详细堆栈Caused by: redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachable node in cluster at redis.clients.jedis.JedisSlotBasedConnectionHandler.getConnection(JedisSlotBasedC
2021-06-02 15:31:57 3995 2
原创 两数相加
滴滴面试一轮挂评语:技术可以,算法不行。面试官说给你出个简单的吧:两个大数相加说实话我之前做过,我忘记了,马赛网不能调试,所以只能手撕,当然会部分代码出错,提示了三次才写下来评语:不要着急编码理清思路以及合理性代码package com.yang.leetcode.exam;import java.util.Arrays;/** * @author: fudy * @date: 2021/04/17 下午 03:26 * @Decription: **/public
2021-04-17 12:36:32 132
原创 二叉树非递归遍历
中序遍历void InOrderWithoutRecursion2(BTNode* root){ //空树 if (root == NULL) return; //树非空 BTNode* p = root; stack<BTNode*> s; while (!s.empty() || p) { if (p) { s.push(p); p = p->lchild; } else { p = s.top(); s.pop();
2021-04-15 23:02:18 115
原创 堆排序 java实现(终于有人让我一遍懂了)
本人参考原博主文章1.概述堆排序堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:一般我们用数组来进行落地描述,无论是栈,队列,还是图,最终都是数组或者多维数组来描述。2.直接上思路本人参考原博主文章堆排序的基本
2021-04-15 22:41:55 180
4.maven学习.doc
2020-10-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人