avatar
文章
33
标签
87
分类
35
首页
归档
标签
分类
关于
GoofySatoshi's Blog
搜索
首页
归档
标签
分类
关于

GoofySatoshi's Blog

JVM核心知识点八股文
发表于2025-12-11|更新于2025-12-11|后端面试|JVM•垃圾回收•内存模型•八股文
JVM 核心知识点八股文(高频面试版)本文整理 JVM 面试中最常考察的核心知识点,覆盖内存结构、垃圾回收、类加载、性能调优等高频考点,适合面试复习和知识点梳理。 一、JVM 内存结构(运行时数据区)JDK 8 及以上版本的内存结构移除了永久代(PermGen),替换为元空间(Metaspace),核心分为以下区域: 1. 线程私有区域 程序计数器:记录当前线程执行的字节码行号,唯一不会抛出 OOM 的区域; 虚拟机栈:存储方法调用的栈帧(局部变量表、操作数栈、动态链接、方法出口),栈深度溢出抛 StackOverflowError,内存不足抛 OOM; 本地方法栈:为 Native 方法服务,与虚拟机栈逻辑一致,同样会抛 StackOverflowError/OOM。 2. 线程共享区域 堆:JVM 最大的内存区域,存储对象实例和数组,是垃圾回收(GC)的核心区域; 分代:新生代(Eden + Survivor0 + Survivor1,比例 8:1:1)、老年代; 溢出:对象无法分配内存时抛 OutOfMemoryError: Java heap space。 ...
LeetCode1015.可被K整除的最小整数
发表于2025-11-25|更新于2025-12-11|LeetCode算法|LeetCode•算法•哈希表•数学
1015.可被K整除的最小整数题目描述:给定正整数 k ,你需要找出可以被 k 整除的、仅包含数字 1 的最 小 正整数 n 的长度。 返回 n 的长度。如果不存在这样的 n ,就返回-1。 注意: n 可能不符合 64 位带符号整数。 示例 1: 输入: k = 1 输出: 1 解释: 最小的答案是 n = 1,其长度为 1。 示例 2: 输入: k = 2输出: -1解释: 不存在可被 2 整除的正整数 n 。 示例 3: 输入: k = 3输出: 3解释: 最小的答案是 n = 111,其长度为 3。 提示: 1 <= k <= 10^5 思路: 循环遍历乘10取余k,为了避免溢出对k取余,对k取余不会影响结果 代码:123456789101112class Solution { public int smallestRepunitDivByK(int k) { int res = 0; for (int i = 1; i < 100000; ...
LeetCode1018.可被5整除的二进制
发表于2025-11-24|更新于2025-12-11|LeetCode算法|LeetCode•算法•位运算•数组
1018.可被5整除的二进制题目描述:给定一个二进制数组 nums ( 索引从0开始 )。 我们将xi 定义为其二进制表示形式为子数组 nums[0..i] (从最高有效位到最低有效位)。 例如,如果 nums =[1,0,1] ,那么 x0 = 1, x1 = 2, 和 x2 = 5。返回布尔值列表 answer,只有当 xi 可以被 5 整除时,答案 answer[i] 为 true,否则为 false。 示例 1: 输入: nums = [0,1,1] 输出: [true,false,false] 解释: 输入数字为 0, 01, 011;也就是十进制中的 0, 1, 3 。只有第一个数可以被 5 整除,因此 answer[0] 为 true 。 示例 2: 输入: nums = [1,1,1]输出: [false,false,false] 提示: 1 <= nums.length <= 105 nums[i] 仅为 0 或 1 思路: 循环遍历左移一位取余5,为了避免溢出对5取余 代码:1234567891011class Solu...
LeetCode1262.可被三整除的最大和
发表于2025-11-23|更新于2025-12-11|LeetCode算法|LeetCode•算法•数组•贪心
1262.可被三整除的最大和题目描述:给你一个整数数组 nums,请你找出并返回能被三整除的元素 最大和。 示例 1: 输入: nums = [3,6,5,1,8] 输出: 18 解释: 选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。 示例 2: 输入: nums = [4]输出: 0解释: 4 不能被 3 整除,所以无法选出数字,返回 0。 示例 3: 输入: nums = [1,2,3,4,4]输出: 12解释: 选出数字 1, 3, 4 以及 4,它们的和是 12(可被 3 整除的最大和)。 提示: 1 <= nums.length <= 4 * 104 1 <= nums[i] <= 10^4 思路: 虽然A过了,但是我写的贪心太丑陋了,放下灵神的代码吧 代码:123456789101112131415161718192021222324252627282930class Solution { public int maxSumDivThree(int[] nu...
LeetCode65.有效数字
发表于2025-11-23|更新于2025-12-11|LeetCode算法|LeetCode•算法•字符串
65.有效数字题目描述:给定一个字符串 s ,返回 s 是否是一个 有效数字。 例如,下面的都是有效数字:2, 0089, -0.1, +3.14, 4., -.9, 2e10, -90E3, 3e+7, +6e-1, 53.5e93, -123.456e789,而接下来的不是:abc, 1a, 1e, e3, 99e2.5, --6, -+3, 95a54e53。 一般的,一个 有效数字 可以用以下的规则之一定义: 一个 整数 后面跟着一个 可选指数。 一个 十进制数 后面跟着一个 可选指数。 一个 整数 定义为一个 可选符号 - 或 + 后面跟着 数字。一个 十进制数 定义为一个 可选符号 - 或 + 后面跟着下述规则: 数字 后跟着一个 小数点 .。 数字 后跟着一个 小数点 . 再跟着 数位。 一个 小数点 . 后跟着 数位。指数 定义为指数符号 e 或 E,后面跟着一个 整数。 数字 定义为一个或多个数位。 示例 1: 输入: s = “0” 输出: true 示例 2: 输入: s = “e”输出: false 示例 3: 输入: s...
LeetCode32.最长有效括号
发表于2025-11-23|更新于2025-12-11|LeetCode算法|LeetCode•算法•字符串•栈
LeetCode32.最长有效括号题目描述:给你一个只包含 ( 和 ) 的字符串,找出最长有效(格式正确且连续)括号 子串 的长度。 左右括号匹配,即每个左括号都有对应的右括号将其闭合的字符串是格式正确的,比如 (()())。 示例 1: 输入: s = “(()” 输出: 2 解释: 最长有效括号子串是 “()” 示例 2: 输入: s = “)()())”输出: 4解释:最长有效括号子串是 “()()” 示例 3: 输入: s = “”输出: 0 提示: 0 <= s.length <= 3 * 104 s[i] 为 ( 或 ) 思路: 栈存下标,每次入栈取栈顶元素看当前待入栈元素是否为),且栈顶元素为(,若满足条件则先弹出元素,然后取ans = Math.max(i-stack(top),ans)需要注意下边界条件,即栈为空边界 代码:1234567891011121314151617181920class Solution { public int longestValidParentheses(Stri...
LeetCode3190.使所有元素都可以被3整除的最少操作数
发表于2025-11-22|更新于2025-12-11|LeetCode算法|LeetCode•算法•数组
3190.使所有元素都可以被3整除的最少操作数题目描述:给你一个整数数组 nums 。一次操作中,你可以将 nums 中的 任意 一个元素增加或者减少 1 。 请你返回将 nums 中所有元素都可以被 3 整除的 最少 操作次数。 示例 1: 输入: nums = [1,2,3,4] 输出: 3 解释: 通过以下 3 个操作,数组中的所有元素都可以被 3 整除: 将 1 减少 1 。 将 2 增加 1 。 将 4 减少 1 。 示例 2: 输入: nums = [3,6,9]输出: 0 提示: 1 <= nums.length <= 50 1 <= nums[i] <= 50 思路: 暴力破解就好,循环代替思考 代码:123456789class Solution { public int minimumOperations(int[] nums) { return Arrays.stream(nums) .map(num -> { ...
LeetCode1930.长度为3的不同回文子序列
发表于2025-11-21|更新于2025-12-11|LeetCode算法|LeetCode•算法•哈希表•字符串•枚举
1930.长度为3的不同回文子序列题目描述:给你一个字符串 s ,返回 s 中 长度为 3 的不同回文子序列 的个数。 即便存在多种方法来构建相同的子序列,但相同的子序列只计数一次。 回文 是正着读和反着读一样的字符串。 子序列 是由原字符串删除其中部分字符(也可以不删除)且不改变剩余字符之间相对顺序形成的一个新字符串。 例如,"ace" 是 "abcde" 的一个子序列。 示例 1: 输入: s = “aabca” 输出: 3 解释: 长度为 3 的 3 个回文子序列分别是: “aba” (“aabca” 的子序列) “aaa” (“aabca” 的子序列) “aca” (“aabca” 的子序列) 示例 2: 输入: s = “adc”输出: 0解释:“adc” 不存在长度为 3 的回文子序列。 示例 3: 输入: s = “bbcbaba”输出: 4解释: 长度为 3 的 4 个回文子序列分别是: “bbb” (“bbcbaba” 的子序列) “bcb” (“bbcbaba” 的子序列) “...
LeetCode757.设置交集大小至少为2
发表于2025-11-20|更新于2025-12-11|LeetCode算法|LeetCode•算法•数组•贪心•排序
757.设置交集大小至少为2题目描述:给你一个二维整数数组 intervals ,其中 intervals[i] = [starti, endi] 表示从 starti 到 endi 的所有整数,包括 starti 和 endi 。 包含集合 是一个名为 nums 的数组,并满足 intervals 中的每个区间都 至少 有 两个 整数在 nums 中。 例如,如果 intervals = [[1,3], [3,7], [8,9]] ,那么 [1,2,4,7,8,9] 和 [2,3,4,8,9] 都符合 包含集合 的定义。 返回包含集合可能的最小大小。 示例 1: 输入: intervals = [[1,3],[3,7],[8,9]] 输出: 5 解释: nums = [2, 3, 4, 8, 9].可以证明不存在元素数量为 4 的包含集合。 示例 2: 输入: intervals = [[1,3],[1,4],[2,5],[3,5]]输出: 3解释: nums = [2, 3, 4].可以证明不存在元素数量为 2 的包含集合。 ...
LeetCode2154. 将找到的值乘以2
发表于2025-11-19|更新于2025-12-11|LeetCode算法|LeetCode•算法•哈希表•数组•排序
2154. 将找到的值乘以2题目描述: 给你一个整数数组 nums ,另给你一个整数 original ,这是需要在 nums 中搜索的第一个数字。 接下来,你需要按下述步骤操作: 如果在 nums 中找到 original ,将 original 乘以 2 ,得到新 original(即,令 original = 2 * original)。否则,停止这一过程。 只要能在数组中找到新 original ,就对新 original 继续 重复 这一过程。 返回 original 的 最终 值。 示例 1: 输入: nums = [5,3,6,1,12], original = 3 输出: 24 解释: 3 能在 nums 中找到。3 * 2 = 6 。 6 能在 nums 中找到。6 * 2 = 12 。 12 能在 nums 中找到。12 * 2 = 24 。 24 不能在 nums 中找到。因此,返回 24 。 示例 2: 输入: nums = [2,7,9], original = 4 输...
12…4
avatar
GoofySatoshi
分享技术、读书笔记和生活点滴
文章
33
标签
87
分类
35
Follow Me
公告
连雨不知春归去,一晴方觉夏已深
最新文章
JVM核心知识点八股文2025-12-11
LeetCode1015.可被K整除的最小整数2025-11-25
LeetCode1018.可被5整除的二进制2025-11-24
LeetCode1262.可被三整除的最大和2025-11-23
LeetCode65.有效数字2025-11-23
分类
  • Java1
    • JVM1
      • 垃圾收集器1
  • Java Web2
    • Tomcat1
    • 中间件1
      • Tomcat1
  • LeetCode10
标签
排序 Tomcat性能调优 Spring生态 Tomcat 热部署 哈希表 CountDownLatch Java 虚拟机 类加载机制 Exchanger 八股文 LifeCycle 接口 Java 数学 全局事务ID 分布式流量控制 动态配置 Semaphore 贪心 Undo Log 算法 线程安全 线程 Hexo ReentranLock 拉模式 Java并发 Linux IO模型 JConsole监控 配置中心 并发 NIO 垃圾回收机制 Pipeline-Valve 模式 分布式服务治理 源码剖析 XA模式 Servlet 容器 推模式 操作系统
归档
  • 十二月 2025 1
  • 十一月 2025 10
  • 十月 2025 7
  • 九月 2025 6
  • 八月 2025 6
  • 五月 2025 1
  • 五月 2024 2
网站信息
文章数目 :
33
本站总字数 :
57.2k
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2019 - 2025 By GoofySatoshi
浙ICP备2025214344号
搜索
数据加载中