摘要: 哈希表(Hash Table,也叫散列表),是存储键值对(key-value)的数据结构,主要利用hash算法将key映射到表中,以便加快查找速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。对于数组而言,查找数据容易,但添加删除数据比较慢;对于链表来说,添加删除数据容易,但查找数据比较慢, 阅读全文
posted @ 2023-11-02 10:20 mingshan 阅读(1) 评论(0) 推荐(0) 编辑
摘要: Java虚拟机定义了程序执行期间使用的各种运行时数据区域。如下图所示: 在Java虚拟机规范的描述中,虚拟机栈、本地方法栈和程序计数器是线程私有的,而像堆、方法区(Jdk8之前)、元空间(JDK8之后)属于所有线程共享区域。除了程序计数器外,虚拟机内存的其他几个运行时区域都有可能发生OutOfMem 阅读全文
posted @ 2023-11-02 10:19 mingshan 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 堆这个数据结构在我大学的教材上没有讲解,但平时听说过堆排序什么的,无疑是要用到这个数据结构,所以本篇文章主要是总结下堆的概念和实现。 堆概念 在维基百科中,是这样定义堆的: 堆(英语:Heap)是计算机科学中的一种特别的树状数据结构。若是满足以下特性,即可称为堆:“给定堆中任意节点 P 和 C,若 阅读全文
posted @ 2023-11-02 10:14 mingshan 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 在看Class文件的结构时,我们会遇到这样几个概念,全限定名(Fully Qualified Name)、简单名称(Simple Name)和描述符(Descriptor),那么这些是什么东东呢? 首先来说全限定名,一个类的全限定名是将类全名的.全部替换为/,示例如下: me/mingshan/cg 阅读全文
posted @ 2023-11-02 10:13 mingshan 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 双向链表描述 双向链表也叫双链表,它的每个数据结点都有两个指针,分别指向前驱结点和后继节点,同时有一个数据域来保存数据,双向链表的图示如下: 从图片可以看出,双链表的头结点的前驱结点和尾结点的后继结点为空,这一点要注意,对双链表的操作要检查这两种情况。 双向链表结构 每个数据结点都有两个指针,分别指 阅读全文
posted @ 2023-11-02 10:11 mingshan 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 在维基百科中,关于分治算法(divide-and-conquer)的介绍如下:在计算机科学中,分治法是建基于多项分支递归的一种很重要的算法范式。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个概念 阅读全文
posted @ 2023-11-02 10:09 mingshan 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 这里有n个房子在一列直线上,现在我们需要给房屋染色,共有k种颜色。每个房屋染不同的颜色费用也不同,你希望每两个相邻的房屋颜色不同 费用通过一个nxk 的矩阵给出,比如cost[0][0]表示房屋0染颜色0的费用,cost[1][2]表示房屋1染颜色2的费用。 样例: 输入: costs = [[14 阅读全文
posted @ 2023-11-02 10:08 mingshan 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 一条包含字母A-Z 的消息通过以下映射进行了 编码 : 'A' -> 1 'B' -> 2 ... 'Z' -> 26 要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,"111" 可以将 "1" 中的每个 "1" 映射为 "A" ,从而得到 "AAA" 阅读全文
posted @ 2023-11-02 10:07 mingshan 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 先来看一下这道题简化的描述: 现有2元,5元,7元三种硬币,假设硬币都足够多,现求解:最少用多少枚上述硬币拼出27块钱? 递归解法 看到这个问题,我们一下子就可以想到一个树形结构,27块钱可以分别减去上面三种硬币的面额,剩下的值可以继续减去上面三种硬币的面额,直至无法再减,计算出刚好能减完的路线(从 阅读全文
posted @ 2023-11-02 10:07 mingshan 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 前几天生产环境出现了一个问题,gc日志里面某一个时间段出现了大量的Full GC,而且都是回收元空间内存失败了,最终导致了JVM停止运行,微服务中的某个服务发生了宕机。下面记录下排查该问题的过程。 首先我们根据服务器的CPU核心数和内存大小,设置了元空间的最大值为512M,这是前提。在服务GC日志中 阅读全文
posted @ 2023-11-01 15:10 mingshan 阅读(60) 评论(0) 推荐(0) 编辑