刷新
记录使用Arthas修改线上源码重新加载的一次过程

博主头像 前情提要 线上跑的代码找不到源码了,项目又需要调整某个字段的校验规则,早有耳闻知道可以通过Arthas完成这个场景的需求,实际动手试了试,在此记录一下。 警告!警告! # !!! 重要警告 !!! # 1. 生产环境谨慎使用,先测试 # 2. 修改前备份原始类 # 3. 确保修改符合JVM规范 # ...

spring6-代理模式和AOP

博主头像 jdbcTemplate jdbcTemplate是spring提供的一个jdbc模板类,是对jdbc的封装。 当然你也可以使用其他框架融入MyBatis、Hibernate。 GoF之代理模式 代理模式的作用 当一个对象需要受到保护的时候,可以使用代理对象去完成某个行为。 需要给某个对象进行功能增 ...

PHP 应用遭遇 DDoS 攻击时会发生什么 从入门到进阶的防护指南

博主头像 PHP 应用遭遇 DDoS 攻击时会发生什么 从入门到进阶的防护指南 暴风雨前的宁静 想象一下,黑色星期五或者某个大促活动。你用 PHP 搭建的电商平台正在迎接前所未有的流量,订单源源不断,用户热情高涨,PHP 应用拼尽全力在扛。然后——啪——网站突然崩了。 你查日志,到底怎么了?流量确实飙了,但这 ...

SQLAlchemy中使用UPSERT

博主头像 前言 SQLite 和 PostgreSQL 都支持 UPSERT 操作,即"有则更新,无则新增"。冲突列必须有唯一约束。 语法: PostgreSQL: INSERT ... ON CONFLICT (column) DO UPDATE/NOTHING SQLite: INSERT ... ON ...

决策树极简入门

博主头像 我们在学习机器学习算法时,往往会被各种枯燥的数学公式所劝退。 今天,我将尝试用结合实际生活的方式,来介绍一个非常经典,而且可能是最“懂你心意”的算法——决策树 (Decision Tree)。。 别被这个术语吓到了,其实你每天点外卖的时候都在用它。 想象一下,下午三点,你站在奶茶店门口(或者打开了外 ...

5、FileDescriptor的源码和使用注意事项(windows操作系统,JDK8)

博主头像 操作系统使用文件描述符来指代一个打开的文件,对文件的读写操作,都需要文件描述符指向存储设备的不透明标识符。Java虽然在设计上使用了抽象程度更高的流来作为文件操作的模型,但是底层依然要使用文件描述符与操作系统交互,而Java世界里文件描述符的对应类就是FileDescriptor。同时,Java规定 ...

Laravel AI SDK 正式发布

博主头像 Laravel AI SDK 正式发布 Laravel AI SDK 今天正式发布了。这个由 Taylor Otwell 开发数月的官方包,为 Laravel 应用提供了一套统一的 AI 交互接口,覆盖文本对话、图像生成、语音合成、语音转录、向量嵌入等场景,支持 OpenAI、Anthropic、G ...

告别沉闷的直方图:绘制高颜值的威尔金森图与麦穗图

博主头像 在数据可视化世界中,我们经常用直方图来描述数据的分布情况,但今天我想介绍两种特别而优雅的点状图变体:威尔金森点状图和麦穗图。 它们像数据世界的"点彩派"画家,用简单的点创造出丰富的信息层次。 与直方图相比,这种点绘法不仅能够更直观地展示数据分布的细节,还能更好地揭示数据之间的关系和模式,使得观察者能 ...

基于AQS实现的ReentrantLock

博主头像 基于AQS实现的ReentrantLock 这里的源码用的Java8版本 lock方法 当ReentrantLock类的实例对象尝试获取锁的时候,调用lock方法, 会进入sync的lock方法,其中Sync是ReentrantLock的一个内部类,ReentrantLock构造方法会默认使用非公平 ...

剑指offer-73、连续⼦数组的最⼤和(⼆)

博主头像 题⽬描述 输⼊⼀个⻓度为n 的整型数组array ,数组中的⼀个或连续多个整数组成⼀个⼦数组,找到⼀个具有 最⼤和的连续⼦数组。 ⼦数组是连续的,⽐如[1,3,5,7,9] 的⼦数组有[1,3] , [3,5,7] 等等,但是[1,3,7] 不是⼦数组 如果存在多个最⼤和的连续⼦数组,那么返回其中⻓ ...

2026 年最值得使用的 7 款 PHP 管理后台框架推荐

博主头像 2026 年最值得使用的 7 款 PHP 管理后台框架推荐 搭建企业级 PHP 后台管理系统,选择一款合适的 Laravel admin 框架至关重要。PHP 作为 Web 开发领域最成熟的语言之一,拥有众多优秀的后台管理框架。Laravel 框架凭借优雅的语法和完善的生态,已成为 GitHub 上 ...

spring6-注解式开发

博主头像 spring框架创建bean就是利用反射机制 反射机制的代码如下: public static void main(String[] args) throws Exception { System.out.println("Hello, World!"); // 使用反射机制调用方法 // 获取类 ...

Rust简要汇总(持续更新)

博主头像 Rust工具: https://www.rust-lang.org/tools/install 1 cargo cargo new my_test 开始于单元包的根节点:在编译一个单元包时,编译器会从单元包的根节点文件开始编译(通常是库单元包中的src/lib.rs,或二进制单元包中的src/mai ...

CF161D Distance in Tree + 树上背包

博主头像 CF161D Distance in Tree DP状态定义 根据子树位置\(+\)路径长度的统计设计状态。 \(Dp_{u,j}\)表示在以 \(u\) 为根的子树中,到 \(u\) 的距离恰好为 \(j\) 的节点个数。 初始化 \[dp_{u, 0}=1 \]状态转移方程式 在合并子树时来统计 ...

断言及静态断言

博主头像 在c++11之前就已经有了断言,但是不是静态断言。 断言 断言是一种编程中常用的手段。在通常情况下,断言就是将一个返回值总是需要为真的判断表达式放在语句中,用于排除在设计的逻辑上不应该产生的情况。 一个函数总需要输入在一定的范围内的参数,那么程序员就可以对该参数使用断言,以迫使在该参数发生异常的时候 ...

Redisson 使用手册:从 API 误区到看门狗失效,在此终结分布式锁的噩梦

博主头像 在上一篇《分布式锁的代价与选择:为什么我们最终拥抱了Redisson?》中,我们聊到了手写 SETNX 的"茹毛饮血"时代。既然选择了 Redisson,就意味着我们已经告别了那些让人提心吊胆的死锁噩梦。 很多时候,我们以为只是调用了一个简单的 lock.lock(),但背后其实是一整套复杂的自动续... ...

123···50>