后端

抖音 Android 性能优化—Java OOM 优化之 NativeBitmap 方案

一、背景和目标 背景 作为 Android 开发者,相信大家都碰到过 Java OOM 问题,导致 OOM 的原因可能是应用存在内存泄漏,也可能是因为手机的 heapsize 比较小不能满足复杂应用对内存资源的大量需求。对于 Java 内存泄漏治理,业界已经有比较成熟的方案,这里不做介绍,本文主要针对第二点尝试进行分析和优化。 举个例子:我们在监控平台查看稳定性数据,发现 heapsize=256

设计模式之代理模式

1. 静态代理 Subject 抽象主题(接口) RealSubject 具体主题(目标对象) Proxy(代理对象) 缺点 目标对象和代理对象都实现接口的所有方法,随着接口方法的改变而改变 一个代理类只能代理一个目标对象 2. 动态代理 JDK动态代理 - 只能代理实现了接口的类 CGLIB 3. JDK 动态代理 需要实现 InvocationHandler public c

MiniDao1.9.0 版本发布,轻量级Java持久化框架

项目介绍 MiniDao 是一款轻量级JAVA持久层框架,基于 SpringJdbc + freemarker 实现,具备Mybatis一样的SQL分离和逻辑标签能力。Minidao产生的初衷是为了解决Hibernate项目,在复杂SQL具备Mybatis一样的灵活能力,同时支持事务同步。 当前版本:v1.9.0 | 2022-09-02 升级日志 升级依赖版本号与jeecgboot版本号一

java的故事

Java 的故事可以追溯到上世纪90年代初,当时 Sun Microsystems 公司的一支团队开始设计一种新的计算机编程语言。这个团队的领导者是詹姆斯·高斯林(James Gosling),他的团队在1991年开始着手研发这种新语言,最初称之为 Oak(橡树)。 Oak 最初的设计目标是用于嵌入式系统的开发,但随着互联网的迅猛发展,Oak 的使用场景逐渐扩展到了 Web 应用开发领域。为了更好

redis内存优化的探索和实践

1,redis如何管理内存结构 redis内存模型: 【used_memory】:Redis内存占用中最主要的部分,Redis分配器分配的内存总量(单位是KB)(在编译时指定编译器,默认是jemalloc),主要包含自身内存(字典、元数据)、对象内存、缓存,lua内存。 【自身内存】:自身维护的一些数据字典及元数据,一般占用内存很低。 【对象内存】:所有对象都是Key-Value型

MySQL中update语法的使用(超详细)

在MySQL中,UPDATE 语句用于修改已存在的表中的记录。以下是对 UPDATE 语句的详细解释和使用方法:语法UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; table_name:要更新的表名。 SET&#xff1

图解LeetCode——剑指 Offer 68 - I. 二叉搜索树的最近公共祖先

一、题目 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百科中最近公共祖先的定义为: 对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。 二、示例 2.1> 示例 1: 【输入】 root = [6,2,8,0,4,7,9,null,null,3,5],

使用OAuth2保护Spring AI MCP服务!

Spring AI框架提供了对Model Context Protocol(简称MCP)的全面支持,使AI模型能够以标准化方式与外部工具和资源进行安全交互。借助Spring AI,开发者仅需少量代码即可构建功能完备的MCP服务器,为AI模型提供丰富的功能扩展。MCP 中的授权和安全MCP服务器默认支持通过STDIO传输在本地环境