后端

缓存雪崩导致的危害和解决办法

1. Redis 数据失效导致的雪崩 因为缓存失效,从而导致大量请求导向数据库。 大量请求,导致数据库处理不过来,整个系统依赖数据库的功能全部崩溃 单系统挂掉,其他依赖于该系统的应用也会出现不稳定甚至崩溃 2. Redis数据失效的场景 最大内存控制 maxmemory 最大内存阈值 maxmemory-policy 到达阈值的执行策略 3. 缓存雪崩解

Java线程<第四篇>:Hook线程以及捕获线程执行异常

一、捕获线程执行异常 Java为我们提供了一个 UncaughtExceptionHandler 接口,当线程在运行过程中出现异常时,会回调 UncaughtExceptionHandler 接口,从而得知是哪个线程在运行时出错,以及出现了什么样的错误。 // 设置回调接口 Thread.setDefaultUncaughtExceptionHandler(new Thread.U

Android 避免内存泄漏-引用模式

概念 内存泄露:Android 为每个应用分配了一定大小的内存,JVM会定时的回收它认为没有用的内存,当代码不规范时会导致一些内存无法被回收占用没存资源,当内存资源不足时一些内存也无法被回收,JVM就会抛出内存泄漏异常 内存溢出:Android 为每个应用分配了一定大小的内存,当Android应用new出一个对象时会向系统申请内存,这时如果系统分配给应用的内存不足(内存泄露导致内存无法释放一直占

Spring AI系列——开发MCP Server和MCP Client(SSE方式)

文章目录 一、概述 MCP架构图 MCP生命周期 二、创建MCP SERVER的java工程 生成初始化工程代码 修改pom.xml文件 定义服务类MathTool 通过配置类的方式把MathTool注入到Spring容器中 修改配置文件application.yaml 启动服务 三、如何使用MCP Server 方式一&#xff1a;使用Chatbox连接MC

Spring AI 核心概念

AI Concepts ⚠️以下基于 Spring AI 1.0.0 M3 版本的文档进行翻译。 本节介绍 Spring AI 使用的核心概念。我们建议仔细阅读它&#xff0c;以了解 Spring AI 是如何实现的。Models 模型AI 模型是旨在处理和生成信息的算法&#xff0c;通常模仿人类的认知功能。通过从大型数据集中学习模式和见解&#xff0c;这些模型可以进行预测、文本、图像

Android ASM字节码插桩(下)

由于内容篇幅限制,紧接着上篇 # 3.6 执行InjectUnitTest.java的test()方法查看InjectTest.class结果 // // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler) // package com.xyaty.asmd

LeetCode 周赛 336,多少人直接 CV?

大家好,我是小彭。 今天早上是 LeetCode 第 336 场周赛,你参加了吗?这场周赛整体质量比较高,但是最后一题是老题,CV 能过。但是输入数据范围被降低了,这操作也是没谁了。 2587. 统计范围内的元音字符串数(Easy) 题目地址

如何在 IDEA 中在启动 Spring Boot 项目时加参数

如何在 IDEA 中在启动 Spring Boot 项目时加参数在日常开发中&#xff0c;我们经常需要在启动 Spring Boot 项目的时候&#xff0c;临时修改一些参数&#xff0c;例如 端口号、运行环境&#xff08;profile&#xff09;、日志级别 等等。除了在 application.yml 文件里修改&#xff0c;我们还可以通过在 IDEA 启动配置中添加参数的方式

算法练习:乘积小于 K 的子数组(滑动窗口)

一.前言 今天奉上的题是来自LeetCode中的一道中等难度的题,但是如果了解滑动窗口的思想,其实这道题也是比较简单的,题目如下: 给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于k 的连续子数组的数目。 示例一: 输入:nums = [10,5,2,6], k = 100 输出:8 解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2],、[

操作系统基础知识(2)

6. 信号量操作 P操作:申请资源,S=S-1,若s&gt;=0,则执行P操作的进程继续执行;若S&lt;0,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。 V操作:释放资源,S=S+1,若s&gt;0,则执行V操作的进程继续执行;若s&lt;=0,则从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺少资源被P操作阻塞的进程可以继续执行),然后执行V操作的进程继续。