
后台
文章平均质量分 62
后台技术的应用于
天下一般
喜欢运动的猿
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mysql死锁排查
mysql如何排查死锁:主要是看Information_schema的表。原创 2025-06-28 12:59:42 · 225 阅读 · 0 评论 -
JVM内存管理<一>:Java内存异常问题排查
(1)经过mimor gc之后,对象仍旧无法被清除,导致full gc:考虑内存泄漏问题,查看是否存在内存泄漏,可以通过jmap + visualvm进行排查。(2) 如果是并发高的场景:minor gc之后,考虑eden分配过小,尝试增大内存的分配量,尤其是eden区的。(3) 如果不是高并发,内存还有急速升高的情况,可能是对象创建太过频繁,或者创建了大对象导致的。(1)minor gc分配太小,导致频繁minor gc,进而对象年龄急速增加,进入老年代。(3)内存泄漏或者大对象的创建。原创 2025-06-21 09:35:57 · 503 阅读 · 0 评论 -
mysql常见面试题<一>字符集、MVCC和锁
MySQL的事务隔离级别。原创 2025-06-16 20:24:53 · 278 阅读 · 0 评论 -
手写RPC框架<三> 使用代理进行服务自动注册
为了方便进行对象管理,本文使用Spring框架进行Bean的管理。: 定义类的扫描路径2. 注解本次RPC的代理,基于注解和拦截进行实现,这样方便定义服务接口的调用。:用来定义Rpc的扫描包地址PpcReference:用来对Rpc服务进行引用3. 拦截使用Spring的PostProcessor,解析RpcScan路径上,定义了RpcService的类,将拦截到的对象进行服务注册4. 服务注册服务提供者接口,主要有两个核心方法:发布服务,负责将服务发布到注册中心,原创 2025-06-10 14:10:27 · 934 阅读 · 0 评论 -
手写PRC框架<二>客户端服务端通信
蕴含了Dubbo的Protocal,Transport,exchange,Serializable三层。其实都是基于Netty的实现网络通信。代码github地址本文封装了三个最简单的实体类:● RpcMessage:请求信息● RpcRequest:RPC请求● RpcResponse:RPC响应● 上面的请求类型有四种,分别是:○ REQUEST_TYPE:请求类型,编码为1○ RESPONSE_TYPE:响应类型,编码为2○ HEARTBEAT_REQUEST_TYPE:心跳请求,编码为原创 2025-06-09 11:36:06 · 685 阅读 · 0 评论 -
手写RPC框架<一> SPI机制
SPI(Service Provider Interface)是一种服务发现机制,允许框架在运行时动态加载和使用实现。它将服务接口与具体实现解耦,使框架可以灵活扩展功能Dubbo 的 SPI机制是其核心特性之一,用于实现框架的可扩展设计。它借鉴了 Java 标准 SPI,但功能更强大,支持 自动注入依赖、自适应扩展、URL 参数动态选择 等高级特性。其中● 自动注入依赖,是使用了反射,然后通过Setter方法,进行依赖注入。原创 2025-06-08 20:26:28 · 435 阅读 · 0 评论 -
记录一次网关异常
spring cloud gateway 网关数组越界异常原创 2024-12-03 22:34:25 · 1363 阅读 · 0 评论 -
Java多线程<二>多线程经典场景
task.get()是阻塞的,最好不要放在主线程中,更不要放在线程创建的路径上,最好在开一个线程,进行归并。多线程对效率的提升体现在多处理器的并行上。这里实现的计算是平均划分数组进行求和,如果不能平均划分就会出错。应该使用归并式的那种划分。明天实现一下多线程的归并排序和多线程的斐波那契数列。原创 2023-12-30 14:13:11 · 1354 阅读 · 0 评论 -
Java多线程<三>常见的多线程设计模式
interrupted() 会让他失效。使用volatile关键字进行改写。原创 2023-12-30 14:09:44 · 1239 阅读 · 0 评论 -
Spring AOP<一>简介与基础使用
被增强的方法的总称一般和环绕通知一起使用@Around(),获取连接点。原创 2023-12-30 14:04:59 · 477 阅读 · 0 评论 -
mit数据库实验2
mit数据库实验2原创 2023-03-01 15:20:15 · 581 阅读 · 0 评论 -
mit数据库实验一总结
mit数据库实验一总结原创 2023-02-26 20:31:06 · 452 阅读 · 0 评论 -
c++宏调试
c++宏调试原创 2023-02-24 12:24:27 · 208 阅读 · 0 评论 -
mysql锁
mysql 锁原创 2023-01-24 10:15:45 · 1046 阅读 · 0 评论 -
kafka实战<二>spring整合kafka
spring 整合kafka原创 2023-01-15 10:09:53 · 342 阅读 · 0 评论 -
kafka实战<一>windows和linux安装kafka
kakfa windows和linux安装原创 2023-01-13 13:45:11 · 566 阅读 · 0 评论 -
Java泛型<二>泛型类型擦除与桥方法
类型擦除与桥方法原创 2022-11-09 18:48:19 · 908 阅读 · 0 评论 -
为什么不能只根据返回值进行函数重载
为什么只根据返回值无法进行函数重载原创 2022-11-09 18:35:23 · 1128 阅读 · 0 评论 -
Java泛型<一>为什么要有泛型
java泛型背景原创 2022-11-09 11:40:31 · 743 阅读 · 0 评论 -
蓝桥杯-Java快速输入输出
蓝桥杯-Java快速输入输出原创 2022-10-28 16:41:05 · 1417 阅读 · 0 评论 -
JVM<二>JVM调优(你想要的调优都在这里了)
jvm调优原创 2022-10-21 21:05:51 · 1001 阅读 · 1 评论 -
JVM<一>内存管理[三]垃圾回收器
JVM内存管理之垃圾回收器原创 2022-10-18 18:27:52 · 726 阅读 · 0 评论 -
设计模式<三>观察者模式
观察者模式原创 2022-10-11 21:01:01 · 252 阅读 · 0 评论 -
JVM<一>内存自动管理[二]对象问题
Java中对象创建、访问,以及内存的对象布局等问题。原创 2022-10-11 20:26:19 · 329 阅读 · 0 评论 -
JVM<一>内存管理[一]内存划分与内存溢出
JVM内存自动管理之内存划分和实战OutOfMemery异常。原创 2022-10-11 18:34:12 · 491 阅读 · 0 评论 -
牛客Java项目<一>Index分页的实现
牛客的仿牛客社区项目原创 2022-09-29 16:20:27 · 421 阅读 · 0 评论 -
设计模式<二> :策略模式
策略模式原创 2022-08-08 18:53:40 · 149 阅读 · 0 评论 -
fork-join线程池
fork-join的分析原创 2022-06-21 00:01:06 · 421 阅读 · 0 评论 -
自定义线程池
线程池的自定义实现原创 2022-06-17 21:03:05 · 115 阅读 · 0 评论 -
双锁检测(DLC)
双锁检测不安全问题的分析package single;/** * @author: Zekun Fu * @date: 2022/5/23 9:59 * @Description: 双锁检测,如果不加volatile线程不安全。 * 因为会访问到未初始化的对象 */public class Doubl_Lock_Check { private static Doubl_Lock_Check instance; // 线程不安全 privat原创 2022-05-23 10:22:52 · 400 阅读 · 0 评论 -
latex表达式 -- 公式等号对其
公式的换行:使用\\就可以使得公式换行比如下面的表达式在等号前面加上了\\,公式就换行了。$$ \sum_{r = i + 1}^{R + 1}\sum_{l = L}^{i}sum[r] - sum[l] \\=(i - L + 1)\sum_{r = i + 1}^{R + 1}sum[r] - (R - i + 1)\sum_{l = L}^{i}sum[l] \\= (i - L + 1)(sums[R + 2] - sums[i + 1]) - (R - i + 1)(sums[原创 2022-05-22 18:04:24 · 2645 阅读 · 0 评论 -
归并排序 -- 多线程版本
近期学了Java多线程的一些关键字还有设计模式的代理模式,在这应用一下。先写下版本1,以后在逐渐进行改进。环境jdk 8+mavencglib思路这里主要实现了三个类。进行数组生成和打印以及其他数组操作的SortUtil类。进行时间统计的代理类TimeProxy,使用cglib生成代理类。进行主逻辑实现的SortThread类。代码SortUtil类package threadBase.threadPool;import java.util.Random;/**原创 2022-05-21 23:38:54 · 641 阅读 · 0 评论 -
观察者模式2 -- jdk内置的观察者模式分析
JDK内置的观察者模式观察者,根据不同的主题的更新来决定自己是否更新,不能在改变主题的状态了, 否则会死循环。具体的观察者绑定了某一个主题观察者不能改变主题的状态,否则会陷入死循环。被观察者,首先设置改变,其次通知所有的观察者。增删都加上锁调用的时候,复制一份,让线程私有之后,再慢慢进行调用。改变之后,使用下面的代码进行通知所有的观察者。setChange();notifyAllObservers();Observable代码详解1. 私有的属性: 是否改变,原创 2022-05-16 18:35:22 · 263 阅读 · 0 评论 -
责任链模式详解
责任链模式gitee代码实现地址1. 背景需求: 实现过滤需求2: 直接写好,不用修改的那种的过滤,就是可以从配置文件中读取的过滤器,然后加入到过滤器队列中。需求3:可以在决定在哪里停止过滤,不用进行下一步的过滤。需求4:在去的时候进行一个过滤,在回来的时候进行另一个过滤。2.实现链式编程实现filterpackage chainOfResponsibility;import com.sun.org.apache.bcel.internal.generic.GETFIE原创 2022-05-15 21:22:02 · 2986 阅读 · 0 评论 -
Java生产者消费者实现,以及死锁问题
逻辑代码 /* * 如果先获取队列的使用权限,而不是先判断空或者满的情况下: * 死锁的执行顺序 * 1. 队列初始为满 * 2. 消费者首先执行,获取队列锁,但是empty锁已经锁住了 * 3. 生产者在执行,队列锁锁住了。 * * 死锁执行顺序2 * 1. 队列初始为空 * 2. 生产者首先执行,获取队列锁,但是full锁已经上了 * 3. 消费者执行,队列锁拿不到。 * */packag原创 2022-05-14 11:26:58 · 452 阅读 · 0 评论 -
notify和notifyAll的区别,notify死锁问题
具体讲解参照博客区别下面补充一个例子,来说明,使用notify会产生死锁,但是使用notifyAll不会。原题为lleetcode 1195大体意思是:四个线程,调用同一个对象的四个不同方法,然后实现线程的同步。在这里使用了synchornized和state来实现这个题目。下面分析一种情况说明notify会产生死锁,而notifyAll会。修改完state = 0后,使用notify激活了应该执行state = 3的线程A。然后,线程state = 0, 调用了wait方法,锁死了自己。原创 2022-05-13 19:23:34 · 891 阅读 · 0 评论 -
Java线程<一>--总述
Java并发概述原创 2022-05-11 16:14:31 · 257 阅读 · 0 评论 -
外观模式与模板方法模式的异同
外观模式与模板方法模式异同点。原创 2022-05-08 20:55:43 · 545 阅读 · 0 评论 -
gradle打包jar找不到或者无法加载主类
直接在build.gradle文件中添加下面代码。jar { manifest { attributes 'Main-Class': '主类的全类名' }}另外如果含有第三方库,使用jar无法直接打包完成。最后的结果如下请看shadow打包第三方库...原创 2022-05-05 20:50:36 · 2902 阅读 · 0 评论 -
gradle打包项目和依赖(第三方库)
不要再乱搞了,找不到第三方库(依赖)的类,直接使用shadow,只需两步,轻松愉快添加插件, build.gradle中添加插件plugins { id 'com.github.johnrengelman.shadow' version '2.0.4' id 'java'}等一会,使用下面的命令进行打包。结果可以直接jar -jar运行了完整的build.gradle文件plugins { id 'com.github.johnrengelman.sh原创 2022-05-05 20:46:38 · 2174 阅读 · 0 评论