摘要: why ? when ? how ? what ? 什么是虚拟机类加载机制 ? 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用 Java 类型。 类加载的时机 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期如下图 阅读全文
posted @ 2018-07-26 10:48 罗贱人 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 剑指 offer 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 思路: 递归判断,相等时判断其左右孩子是否相等。 / public class TreeNode { int val = 0; TreeNode left = null; Tree 阅读全文
posted @ 2018-07-25 13:36 罗贱人 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 剑指 offer 题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 思路: 1. 先判断链表中有环,如果一个链表中有环,那么用两个指针,一个每次移动一个,另外一个指针每次移动两个,那么他们一定会相遇。如果没有环,移动快的那个结点会先指到末尾的 null。 2. 如 阅读全文
posted @ 2018-07-25 11:29 罗贱人 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 剑指 offer 题目描述 输入一个链表,输出该链表中倒数第k个结点。 思路: 使用两个指针,第一个直线先指向第 k 个结点,然后两个指针一起移动当第一个指针移动到末尾,那么第二个指针指向的元素就是倒数第 k 个结点 / public class ListNode { int val; ListNo 阅读全文
posted @ 2018-07-25 10:22 罗贱人 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 剑指 offer 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 思路: 1. 类似于冒泡,前偶后奇交换,时间复杂度 O(N^2) 2. 空间换时间,新建两个数组分别存 阅读全文
posted @ 2018-07-25 10:06 罗贱人 阅读(118) 评论(0) 推荐(0) 编辑
摘要: when ? why ? how ? what ? 计算机的运行速度和它的存储和通信子系统速度的差距太大,大量的时间都花费在磁盘I/O 、网络通信或者数据库访问上。如何把处理器的运算能力“压榨”出来? 如何充分利用计算机处理器? 因为绝大多数的运算任务都不可能只靠处理器“计算”就能完成, 处理器至少 阅读全文
posted @ 2018-07-24 20:23 罗贱人 阅读(203) 评论(0) 推荐(0) 编辑
摘要: why ? what ? when ? how ? 为什么要用红黑树? 红黑树放弃了追求完全平衡,追求大致平衡,任何不平衡都会在3次旋转之内解决,平衡二叉树不行。 Red Black Tree 是一种自平衡的二叉查找树。需要满足下面 5 个性质: 1. 结点是红色或黑色 2. 根结点是黑色 3. 每 阅读全文
posted @ 2018-07-24 10:02 罗贱人 阅读(221) 评论(0) 推荐(0) 编辑
摘要: when ? why ? how ? what ? 平衡二叉树其查找的时间复杂度是 O(log2N)与树的深度相关,那么降低树的深度自然会提高查找效率。 如果我们要操作的数据集非常大,大到内存已经没法处理了怎么办呢?如数据库中的上千万条记录的数据表、硬盘中的上万个文件等。在这种情况下,对数据的处理需 阅读全文
posted @ 2018-07-23 17:23 罗贱人 阅读(195) 评论(0) 推荐(0) 编辑
摘要: when ? what ? why ? how ? 为什么要进行垃圾回收? 当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们需要对内存动态分配和内存回收技术实施必要的监控和调节。 垃圾回收的区域是哪块? JVM 内存结构分成程序计数器、虚拟机栈、本地方法栈、堆、 阅读全文
posted @ 2018-07-20 18:13 罗贱人 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 如果需要删除链表中的一个已知结点时,需不需要通过链表遍历找到该结点的前一个结点然后将前一个结点指向该结点的下一个结点? 不需要,可以将该结点的下一个结点的值复制给该结点,然后该结点的 next 下下个结点。 不过需要考虑 3 种情况:1.链表只有一个结点(头指针需要赋值为NULL) 阅读全文
posted @ 2018-07-19 12:49 罗贱人 阅读(192) 评论(0) 推荐(0) 编辑