- 博客(46)
- 资源 (5)
- 收藏
- 关注
原创 DeferredResult 是如何实现异步处理请求的
最近遇到了一个问题,我们的一个接口需要去轮询另一个第三方接口,导致这个接口占用了太多工作线程,这些工作线程长时间 running,我们需要解决这个问题。于是,我们的方案是:用 DeferredResult 实现接口异步。全文就是探究其原理。
2024-08-02 21:41:38
873
原创 springcloud RocketMQ 客户端是怎么走到消费业务逻辑的 - debug step by step
Springcloud RocketMQ ,一个mq消息发送后,客户端是怎么一步步拿到消息去消费的?我们要从代码层面探究这个问题。
2024-07-25 10:59:47
505
原创 订单折扣金额分摊算法|代金券分摊|收银系统|积分分摊|分摊|精度问题|按比例分配|钱分摊|钱分配
一个金额分摊的算法,将折扣分摊按比例(细单实收在总体的占比)到各个细单中。此算法需要达到以下要求:折扣金额接近细单总额,甚至折扣金额等于细单金额,某些时候甚至超过细单总额,要保证实收不为负数。复杂度O(n)写这个算法的初衷,就是因为现在网上的分摊算法,都没有考虑到最后一项不够减、只循环一次、折扣金额接近总额…
2024-07-03 17:50:26
471
2
原创 谈谈跳台阶算法的记忆法和编程理念|青蛙跳台阶|递归|动态规划|算法|程序员面试|Java
为什么会写这篇文章?因为鄙人刷过此题多次,每次觉得自己会了,可下次还是不能一下子写出题解,故记录下我是如何记忆此题的,并且探索一些编程理念。
2024-06-20 11:55:54
391
原创 java数组ArrayList迭代修改的ConcurrentModificationException错误
java数组集合进行迭代修改时,不用迭代器内部方法容易报错!
2024-06-13 22:12:01
265
原创 mysql oceanbase数据库alter语句阻塞,解决方案
查一下这些阻塞的语句,判断哪个是所阻塞的表相关的。执行:kill processlist_id。
2024-05-08 15:57:55
355
原创 2022阿里巴巴全球数学竞赛 第4题 虎虎生威(盲盒问题、集卡问题)解决思路
盲盒问题、集卡问题,来自 2022阿里巴巴全球数学竞赛 第4题(单选题),参考了哔哩哔哩阿里达摩院的解题思路,加上自己的通俗理解。
2022-07-01 23:35:43
5916
2
原创 手写一个简单的Spring容器(原理+源码)
手写一个简单的Spring容器,用配置文件方式,在配置文件中写入我们想要的bean,工厂会自动创建一个仓库,bean实例被用到时注册,我们就可以直接根据bean的名字拿到这个bean的单例。
2022-07-01 14:19:32
650
原创 Learning Git Branching 题解(基础、高级、Git远程仓库)
Learing Git Branch是一个模拟git操作的网站,本文将解题的关键过程记录下来,方便后续复习和查阅
2022-06-30 19:26:39
1097
原创 C++实现wins后台监控键盘输入(Hook)
使用Wins的Hook技术,将键盘输入的消息的新处理挂载到消息处理链中去,实现简单的对键盘输入的监控。
2022-06-23 01:16:32
8441
4
原创 从源码和测试多方面深度解读Java的String类对象的内存分布
网上关于String对象内存分配的知识的分享比较零散不一,String的==、intern函数,以及在JVM内存中String到底在哪里,这篇文章会进行分析。
2022-06-15 18:36:53
274
原创 攻防世界(adworld) WEB Exercise area(练习区)10题解题思路
整理adworld中10道web攻击练习题,涉及http请求响应内容、密码爆破、编码解码、php语法、webshell等。
2022-03-15 16:20:54
3692
原创 整理PHP的一些比较突出的特点(PHP入门笔记)
作为一个Java开发者,第一次学习PHP,在查看了入门文档之后,整理了令我印象深刻的点。服务器脚本语言PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言。 纯 HTML 结果发送回浏览器<!DOCTYPE html><html><body><h1>My first PHP page</h1><?phpecho "Hello World!";?>.
2022-03-08 17:10:18
269
原创 SpringMVC静态资源发布流程(静态如何从文件加载到Resource,最后传给response,以及其专用处理器ResourceHttpRequestHandler源码深入追究)
SpringMVC 加载静态文件,最后又传给response,说完你可能不信,我追踪了一遍!
2022-03-02 20:26:44
1192
原创 HttpRequestHandlerAdapter——SpringMVC中的网络请求处理适配器
我们SpringMVC中,DispatcherServlet拿到请求,先去HandlerMapping找到handler链,然后获取支持这个handler的HandlerAdapter,拿得到的话就执行处理逻辑,然后得到模型视图,再解析视图,渲染。HttpRequestHandlerAdapter这个也是其中的一环。
2022-03-02 12:20:44
1079
原创 SpringBoot SpringBootServletInitializer启动原理,如何扫描添加Servlet、ServletContext,内置tomcat原理(源码深入解析)
现在主流的SpringBoot就是基于Servlet的,所以研究Servlet如何加载是很有必要的。
2022-03-01 23:10:58
2475
原创 SpringBoot中SpringMVC的DispatcherServlet工作流程?服务发布?源码解析?Servlet监听?Listener?注释翻译?代码详解?与Controller关系?
我们写一个Listener去监听什么是Listener?Listener 即监听器,是servlet 的监听器。随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。当被监视的对象发生情况时,立即采取相应的行动(观察者模式)。主要作用是做一些初始化的内容添加工作、设置一些基本的内容(比如一些参数或者是一些固定的对象)。通过监听器,可以自动激发一些操作。比如:监听在线用户数量等等。我们先实操:import javax.servlet.ServletContext;import ja
2022-03-01 17:32:49
452
原创 Java与SpringBoot内置Tomcat源码运行原理与Servlet放置原理解析(org.apache.catalina.startup.Tomcat)
简单使用可以参考这篇文章:https://blog.csdn.net/the_one_and_only/article/details/105177506基本原理就是将Tomcat对象中的Host和Connector中的port设置成相应的host:port,配置Tomcat上下文(环境配置),最后加入Servlet,然后跑起来。Tomcat是这样的:Tomcat源码注释:/** * Minimal tomcat starter for embedding/unit tests. * *
2022-02-28 21:15:44
705
原创 n步问题求解算法:斐波那契拓展|青蛙跳台阶拓展|三步问题拓展|多步问题拓展|高精度|大整数支持|自顶向下分析|自底向上求解
问题分析(自顶向下)首先看斐波那契数列,我们先自顶向下分析,f(n)其实是f(n-1)和f(n-2)的和,我们如果画成树,就会发现底层叶子节点都是 f(0)=0 和 f(1)=1。我们再看经典的青蛙问题,每次跳1~2步,跳一步的情况+跳两步的情况,f(n)=f(n-1)+f(n-2),其实本质也是斐波那契数列。(初始值及其含义不一样)最后看三步问题,每次跳1~3步,跳一步的情况+跳两步的情况+跳三步的情况,f(n)=f(n-1)+f(n-2)+f(n-3),很像斐波那契数列。(初始值及其含义不一样)
2021-06-24 18:56:54
307
原创 安卓AIDL跨进程调用技术实例(踩坑讲解)(两种方案)(max函数服务|音乐播放服务)
方法一:aidl接口+Service类main文件下创建aidl接口:创建之后:代码:interface GetMaxAidlService { /** * Demonstrates some basic types that you can use as parameters * and return values in AIDL. */// void basicTypes(int anInt, long aLong, boolean aBoole
2021-06-13 00:23:32
1752
6
原创 前后端分离下后台管理系统的开发全套完整方案步骤(SpringBoot)
目录技术选型数据库设计数据模型podto后台经典三层dao层service层controller层后台安全令牌公共参数拦截器放行规则登录验证操作权限缓存缓存注解缓存模板响应包装配置自定义配置pom数据安全字段验证日志本教程注重整体设计思路,提出相应的技术,每一步的具体实现点到为止技术选型SpringBoot+Redis+MyBatis(Plus)Spring进行bean管理,Redis缓存,MyBatis(Plus)管理持久层数据库设计外键是必须加的,这样可以保证数据完整性(参照完整性),
2021-06-03 00:00:39
2132
1
原创 那些经典且常用的算法套路
链表的构建可能你有很多种方案,以下这个是我个人总结出的比较好用的方案。ListNode head = null, node = null;while (condition) { // 这里准备一个新的节点值 val if (node == null) { head = new ListNode(val); node = head; } else { node.next = new ListNode(val); node
2021-05-08 15:11:32
200
原创 那些奇妙的算法题
因子的个数例题:(LeetCode 172)给定一个整数 n,返回 n! 结果尾数中零的数量。这道题可以转化为:(因为5乘以偶数会得到10,而偶数很多)给定一个整数 n,返回 n 中 5 的因子数而找到因子5的个数,可以参考找因子2或者10的个数的方法题解:public int trailingZeroes(int n) { int count = 0; while (n > 0){ count += n / 5; n /=
2021-05-07 14:55:37
139
原创 算法优化方案(刷题总结)
IO方面:一个典型的算法题,一般会有一个输入输出模板,例如以下这道题:输入:输入第一行包含一个正整数 T,表示需要检验的用户名数量。接下来有 T 行,每行一个字符串 s,表示输入的用户名。输出:对于每一个输入的用户名 s,请输出一行,表示符不符合用户名的规定格式。我之前用的代码:import java.util.Scanner;public class Solution { public static boolean fit(String name) { //验证用户名格式
2021-04-24 18:00:13
644
原创 springboot+mybatis-generator逆向工程自动生成的代码文件内容详细解析+使用(Mapper.xml+实体类+增删查改条件模板类+Mapper接口类)
数据库设计实体类.java实体类Example.java~Mapper.xml大致情况:名称空间,定义到Mapper接口类上<mapper namespace="com.superkarx.dao.TestMapper">结果集 <!--结果集,指定这个结果集的 id 叫什么,返回的类型是对应哪个 bean--> <resultMap id="BaseResultMap" type="com.superkarx.pojo.Test">
2020-10-27 15:06:38
501
原创 SSL简介(定义、功能、原理、优点、缺点)
定位它是Netscape公司提出的基于WEB应用的安全套接层协议,它指定了一种在应用程序协议和TCPflP协议间提供数据安全性分层的机制,但常用于安全WEB应用的HTTP协议。功能SSL为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。是一种安全服务。原理机制:SSL采用RsA、DES,3DES等、密码体制以及MD系列HASH函数、Diffie-Hellman密钥交换算法。 具体实现:客户机向服务器发送SSL版本号和选定的加密算法;服务器回应相同信息外还回送一个
2020-10-27 11:46:56
4862
1
原创 CA系统(概念、结构和功能)和CA证书
CA系统CA系统的结构包含内容作用安全服务器用于提供证书申请、浏览、证书撤消列表以及证书下载等安全服务CA服务器CA服务器是整个证书机构的核心,负责证书的签发登记中心RA登记中心服务器面向登记中心操作员,在CA体系结构中起承上启下的作用LDAP服务器LDAP服务器提供目录浏览服务,其他用户通过访问LDAP服务器就能够得到其他用户的数字证书数据库服务器数据库服务器是认证机构中的核心部分,用于认证机构数据(如密钥和用户信息等)、日志和统计信息的存储和管理
2020-10-27 11:24:39
13297
原创 Springboot的mybatis逆向工程自动生成代码+代码解析+神坑规避指南(全网最全攻略|附思维导图)
项目版本概况mybatis-generator-core:1.3.4mybatis-generator-maven-plugin:1.3.4mysql-connector-java(项目运行):8.0.22mysql-connector-java(逆向工程):5.1.47mybatis-spring-boot-starter:2.1.3实验日期:2020 年 10 月 22 日思维导图数据库设计:宁愿属性名很长,也不要使用到 mysql 关键字!(ps:修了一天 bug 的罪恶之源)
2020-10-22 16:52:12
736
3
原创 维吉尼亚密码简介和C/C++语言实现
简介维吉尼亚密码是古典密码的一种,从凯撒密码演变而来,用多个凯撒密码组成,是多表密码的简单实现。凯撒密码维吉尼亚密码特点引进了密钥,是一种二维加密加密流程将A-Z的26个字母(不区分大小写)进行0~26编号,从第一位开始,每一位:密文=【密钥+明文】mod26。(密钥可循环)解密流程跟加密流程逆着来,每一位:明文=【密文-密钥】mod26。(最后取正)代码#include"iostream"using namespace std;#define MINCHAR 97#
2020-10-14 14:38:37
4924
1
原创 Springboot+MyBatis+Redis极简restful风格后台搭建
前置知识:JavaWeb、Mysql、Springboot等入门知识一、配置环境1.mysql环境此部分请跳到:https://blog.csdn.net/bobo553443/article/details/813831942.Redis环境此部分请跳到:https://blog.csdn.net/GDUT_xin/article/details/108986323二、项目搭建1.创建项目创建一个普通的 Springboot 项目此部分请跳到:https://blog..
2020-10-10 17:11:58
1060
ssm-demo.zip
2020-09-27
进程调度作业调度和内存块分配算法(含界面).zip
2020-07-26
多道批处理的两级调度.zip
2020-07-11
B树+B树实现的图书管理系统(C语言)(广东工业大学课程设计2019).zip
2020-01-11
广工数据结构anyview2019最新完整参考答案(含题目).docx
2020-01-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人