摘要: 介绍 Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,如直接访问系统内存资源、自主管理内存资源等,这些方法在提升Java运行效率、增强Java语言底层资源操作能力方面起到了很大的作用。但由于Unsafe类使Java语言拥有了类似C语言指针一样操作内存空间 阅读全文
posted @ 2026-02-06 09:00 程序员Seven 阅读(107) 评论(0) 推荐(0)
摘要: 题⽬描述 输⼊⼀个⻓度为n 的整型数组array ,数组中的⼀个或连续多个整数组成⼀个⼦数组,找到⼀个具有 最⼤和的连续⼦数组。 ⼦数组是连续的,⽐如[1,3,5,7,9] 的⼦数组有[1,3] , [3,5,7] 等等,但是[1,3,7] 不是⼦数组 如果存在多个最⼤和的连续⼦数组,那么返回其中⻓ 阅读全文
posted @ 2026-02-05 09:00 程序员Seven 阅读(10) 评论(0) 推荐(0)
摘要: 题⽬描述 在⼀个m × n的棋盘的每⼀格都放有⼀个礼物,每个礼物都有⼀定的价值(价值⼤于 0)。你可以从棋盘的左上⻆开始拿格⼦⾥的礼物,并每次向右或者向下移动⼀格、直到到达棋盘的右下⻆。给定⼀个棋盘及其上⾯的礼物的价值,请计算你最多能拿到多少价值的礼物? 如输⼊这样的⼀个⼆维数组, [ [1,3,1 阅读全文
posted @ 2026-02-04 09:00 程序员Seven 阅读(15) 评论(0) 推荐(0)
摘要: 题⽬描述 给你⼀根⻓度为 n 的绳⼦,请把绳⼦剪成整数⻓的 m 段( m 、 n 都是整数, n > 1 并且 m > 1 , m <= n ),每段绳⼦的⻓度记为 k[1] ,..., k[m] 。请问 k[1] * k[2] * ... * k[m] 可能的最⼤乘积是多少?例如,当绳⼦的⻓度是 阅读全文
posted @ 2026-02-03 09:00 程序员Seven 阅读(14) 评论(0) 推荐(0)
摘要: 线程停止 stop方法 stop 方法虽然可以停止线程,但它已经是不建议使用的废弃方法了,这一点可以通过 Thread 类中的源码发现,stop 源码如下: stop 方法是被 @Deprecated 修饰的不建议使用的过期方法,并且在注释的第一句话就说明了 stop 方法为非安全的方法。 原因在于 阅读全文
posted @ 2026-02-02 09:00 程序员Seven 阅读(429) 评论(0) 推荐(1)
摘要: BlockingQueue和BlockingDeque BlockingQueue BlockingQueue 通常用于一个线程生产对象,而另外一个线程消费这些对象的场景。下图是对这个原理的阐述: 一个线程往里边放,另外一个线程从里边取的一个 BlockingQueue。 一个线程将会持续生产新对象 阅读全文
posted @ 2026-01-30 09:00 程序员Seven 阅读(27) 评论(0) 推荐(0)
摘要: 题⽬描述 有⼀种将字⺟编码成数字的⽅式:'a'->1, 'b->2', ... , 'z->26'。 现在给⼀串数字,返回有多少种可能的译码结果 示例1 输⼊:"12" 返回值:2 说明:2种可能的译码结果(”ab” 或”l”) 示例2 输⼊:"31717126241541717" 返回值:192 阅读全文
posted @ 2026-01-29 09:00 程序员Seven 阅读(29) 评论(0) 推荐(0)
摘要: 题⽬描述 数字以 0123456789101112131415... 的格式作为⼀个字符序列,在这个序列中第 2 位(从下标 0 开始计算)是 2 ,第 10 位是 1 ,第 13 位是 1 ,以此类题,请你输出第 n 位对应的数字。 示例1 输⼊:0 返回值:0 示例2 输⼊:2 返回值:2 示例 阅读全文
posted @ 2026-01-28 09:00 程序员Seven 阅读(18) 评论(0) 推荐(0)
摘要: 题⽬描述 输⼊⼀个⻓度为 n 整数数组,数组⾥⾯可能含有相同的元素,实现⼀个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前⾯部分,所有的偶数位于数组的后⾯部分,对奇数和奇数,偶数和偶数之间的相对位置不做要求,但是时间复杂度和空间复杂度必须如下要求。 数据范围:0 ≤ n ≤ 50000,数 阅读全文
posted @ 2026-01-27 09:00 程序员Seven 阅读(19) 评论(0) 推荐(0)
摘要: 前言 Vector无论是add方法还是get方法都加上了synchronized修饰,当多线程读写List必须排队执行,很显然这样效率比较是低下的,CopyOnWriteArrayList是读写分离的,好处是提高线程访问效率。 CopyOnWrite容器即写时复制的容器。通俗的理解是当往一个容器添加 阅读全文
posted @ 2026-01-26 09:00 程序员Seven 阅读(35) 评论(0) 推荐(0)
摘要: 为什么不推荐使用Stack Java已不推荐使用Stack,而是推荐使用更高效的ArrayDeque 为什么不推荐使用 性能低:是因为 Stack 继承自 Vector, 而 Vector 在每个方法中都加了锁。由于需要兼容老的项目,很难在原有的基础上进行优化,因此 Vector 就被淘汰掉了,使用 阅读全文
posted @ 2026-01-23 09:00 程序员Seven 阅读(30) 评论(0) 推荐(0)
摘要: 题目描述 给你⼀根⻓度为n 的绳⼦,请把绳⼦剪成整数⻓的m 段( m 、n 都是整数, n>1 并 且m>1 , m<=n ),每段绳⼦的⻓度记为k[1],...,k[m]。请问k[1]x...xk[m] 可能的最⼤乘积是多少?例如,当绳⼦的⻓度是8 时,我们把它剪成⻓度分别为2 、3 、3 的三段 阅读全文
posted @ 2026-01-22 09:00 程序员Seven 阅读(23) 评论(0) 推荐(0)
摘要: 题目描述 地上有⼀个 m ⾏和 n 列的⽅格。⼀个机器⼈从坐标(0,0) 的格⼦开始移动,每⼀次只能向左,右,上,下四个⽅向移动⼀格,但是不能进⼊⾏坐标和列坐标的数位之和⼤于 k 的格⼦。 例如,当k 为 18 时,机器⼈能够进⼊⽅格(35,37) ,因为 3+5+3+7 = 18 。但是,它不能进 阅读全文
posted @ 2026-01-21 09:00 程序员Seven 阅读(15) 评论(0) 推荐(0)
摘要: 题目描述 请设计⼀个函数,⽤来判断在⼀个矩阵中是否存在⼀条包含某字符串所有字符的路径。路径可以从矩阵中的任意⼀个格⼦开始,每⼀步可以在矩阵中向左,向右,向上,向下移动⼀个格⼦。如果⼀条路径经过了矩阵中的某⼀个格⼦,则该路径不能再进⼊该格⼦。 例如矩阵: 中包含⼀条字符串 " bcced " 的路径, 阅读全文
posted @ 2026-01-20 09:00 程序员Seven 阅读(20) 评论(0) 推荐(0)
摘要: InheritableThreadLocal相比ThreadLocal多一个能力:在创建子线程Thread时,子线程Thread会自动继承父线程的InheritableThreadLocal信息到子线程中,进而实现在在子线程获取父线程的InheritableThreadLocal值的目的。 关于Th 阅读全文
posted @ 2026-01-19 09:00 程序员Seven 阅读(548) 评论(1) 推荐(0)
摘要: 介绍 优先级队列的作用是能保证每次取出的元素都是队列中权值最小(或最大)的。这里元素大小的评判可以通过元素本身的自然顺序(natural ordering),也可以通过构造时传入的比较器(Comparator)。 Java中PriorityQueue实现了Queue接口,不允许放入null元素;其通 阅读全文
posted @ 2026-01-16 09:00 程序员Seven 阅读(34) 评论(0) 推荐(0)
摘要: 题⽬描述 给定⼀棵⼆叉搜索树,请找出其中的第 k ⼩的 TreeNode 结点。 示例1 输⼊:{5,3,7,2,4,6,8},3 返回值:{4} 思路及解答 二叉搜索树的关键性质 二叉搜索树具有一个重要特性:中序遍历(左-根-右)BST会得到一个升序排列的节点值序列。因此,寻找第k小的节点本质上就 阅读全文
posted @ 2026-01-15 09:00 程序员Seven 阅读(24) 评论(0) 推荐(0)
摘要: 题⽬描述 给定⼀个数组和滑动窗⼝的⼤⼩,找出所有滑动窗⼝⾥数值的最⼤值。例如,如果输⼊数组 {2,3,4,2,6,2,5,1} 及滑动窗⼝的⼤⼩ 3 ,那么⼀共存在 6 个滑动窗⼝,他们的最⼤值分别为 {4,4,6,6,6,5} ; 针对数组 {2,3,4,2,6,2,5,1} 的滑动窗⼝有以下6个 阅读全文
posted @ 2026-01-14 09:00 程序员Seven 阅读(26) 评论(0) 推荐(0)
摘要: 题⽬描述 如何得到⼀个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使⽤ Insert() ⽅法读取数据流,使⽤ GetMedian() ⽅法获取当前读取数据的中位数。 阅读全文
posted @ 2026-01-13 09:00 程序员Seven 阅读(25) 评论(0) 推荐(0)
摘要: 为什么需要SPI机制 SPI和API的区别是什么 SPI是一种跟API相对应的反向设计思想:API由实现方确定标准规范和功能,调用方无权做任何干预; 而SPI是由调用方确定标准规范,也就是接口,然后调用方依赖此接口,第三方实现此接口,这样做就可以方便的进行扩展,类似于插件机制,这是SPI出现的需求背 阅读全文
posted @ 2026-01-12 09:00 程序员Seven 阅读(50) 评论(0) 推荐(0)