有效的括号(020) 跳过 最小栈(155) class MinStack { private final Deque<int[]> stack = new ArrayDeque<>(); public MinStack() { stack.addLast(new int[]{0, Integer. ...
-CoderOilStation Countdownlatch和Cylibarrir 分布式集群和多线程高并发会生成共享数据高性能的操作风险。使用安全的数据结构基于组件去模块开发。线程是一种程序调用单元。线程使用指针连接程序。程序运行资源调度提供应用逻辑单元服务。数据传输使用特殊数据结构transf ...
写在前面 在当今的软件开发实践中,单元测试已成为保障代码质量的必备环节。许多团队已经积累了一定的单元测试经验,能够编写基本的测试用例来验证功能逻辑。然而,当我们面对复杂的业务场景时,仅靠基础的JUnit功能往往会导致测试代码冗长、结构混乱,甚至出现大量重复代码。 作为最新版本的Java测试框架,JU ...
方法内联 它的基本思想是在调用某个方法时,不通过跳转指令去执行该方法的代码,而是直接将该方法的代码复制到调用点处。这样可以减少方法调用的开销,包括减少函数调用和返回的指令执行时间,以及减少堆栈操作 方法内联能够触发更多的优化。通常而言,内联越多,生成代码的执行效率越高。然而,对于即时编译器来说 ...
搜索插入位置(035) class Solution { public int searchInsert(int[] nums, int target) { int n = nums.length; int lef = -1; int rig = n; while(lef+1 < rig){ int ...
本文系统性分析并优化了一个Spring Boot项目启动耗时高达 280 秒的问题。通过识别瓶颈、优化分库分表加载逻辑、异步初始化耗时任务等手段,最终将启动耗时缩短至 159 秒,提升近 50%。文章涵盖启动流程分析、性能热点识别、异步初始化设计等关键技术细节,适用于大型Spring Boot项目的... ...
JVM内存结构分为5大区域,程序计数器、虚拟机栈、本地方法栈、堆、方法区。 程序计数器是什么? 特点: 线程私有 CPU会为每个线程分配时间片,当当前线程的时间片使用完以后,CPU就会去执行另一个线程中的代码 程序计数器是每个线程所私有的,当另一个线程的时间片用完,又返回来执行当前线程的代码时,通过 ...
垃圾回收 引用计数法和可达性分析 引用计数法 即记录对象的 reference count 若≠0则保留 a, b对象相互引用, 不可回收, 造成内存泄露 可达性分析(JVM主流使用) 从GC Root出发的树状结构 若对象不可达则回收 GC Roots 包括(但不限于)如下几种: Java ...
SpringBoot读取Resources下的文件 背景 在开发时候遇到需要通过 Resources 目录下某个 excel 文件作为模板生成文件。但遇到 POI 读取文件的时候发生了 No valid entries or contents found, this is not a valid 0 ...
大家好,我是R哥。 最近看到 TIOBE 公布的 2025 年 6 月编程语言排行榜: 排名 语言 占比 涨跌 1 Python 25.87% +10.48% 2 C++ 10.68% +0.65% 3 C 9.47% +0.24% 4 Java 8.84% +0.44% 5 C# 4.69% -1 ...
单词搜索(079) class Solution { int m, n; public boolean exist(char[][] board, String word) { m = board.length; n = board[0].length; char[] words = word.to ...
几分钟应该看不完,私密马赛, 俺是标题党 既然来了, 看看吧, 球球你了 Java类加载器 类的生命周期和加载过程 加载 加载所有的.class文件/jar文件/网络流 →字节流 (JVM 与java.lang.classLoader协作) 存储于Metaspace/Method Area 校验 确 ...
在 Java 里,若要把BigDecimal类型转换为Integer类型,可借助intValue()或者intValueExact()方法。下面为你介绍这两种方法的具体使用以及它们之间的差异。 1. 采用intValue()方法(不进行溢出检查) 这种方法会把BigDecimal转换为int基本类型 ...
JDK, JRE, JVM的关系 ⚙ 解释器: 逐行转换字节码为机器码 即时编译器(JIT):将热点代码(经常执行的代码段)编译成高效的本地机器码,并缓存起来以供后续直接执行 Just-In-Time Compiler 就范围来说,JDK > JRE > JVM: JDK = JRE + 开发 ...
全排列(046) class Solution { List<List<Integer>> res = new ArrayList<>(); public List<List<Integer>> permute(int[] nums) { int n = nums.length; List<Inte ...
什么是CAS? CAS全称Compare And Swap,比较与交换,是乐观锁的主要实现方式。CAS在不使用锁的情况下实现多线程之间的变量同步。ReentrantLock内部的AQS和原子类内部都使用了CAS。 CAS算法涉及到三个操作数: 需要读写的内存值V。 进行比较的值A。 要写入的新值B。 ...
小伙伴们,你们好呀!我是老寇!一起学习学习gateway限流和熔断降级 一、限流 思考:为啥需要限流? 在一个流量特别大的业务场景中,如果不进行限流,会造成系统宕机,当大批量的请求到达后端服务时,会造成资源耗尽【CPU、内存、线程、网络带宽、数据库连接等是有限的】,进而拖垮系统。 1.常见限流算法 ...
岛屿数量(200) class Solution { public int numIslands(char[][] grid) { int res = 0; int m = grid.length; int n = grid[0].length; for (int i = 0; i < m ; i+ ...
前言 大家好,我是小徐啊。我们在开发Java应用的时候,经常是需要和PDF一起来来使用的。 有的时候,我们的PDF是没有页码的,我们想要给PDF加上页码,该怎么做呢?今天,小徐就来介绍下如何给PDF加上页码,完全免费,一款强大的工具推荐! 如何免费给PDF加页码?一款强大的工具推荐! 首先,我们打开 ...
Encode(编码)和Decode(解码)是在信息处理中常用的概念,用于表示将信息从一种形式转换为另一种形式的过程。 v直接demo import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import jav ...