摘要:
LeetCode 684 冗余连接 题目描述: 在本问题中, 树指的是一个连通且无环的无向图。 输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。 结果图是一个以边组成的二维数组 阅读全文
摘要:
LeetCode 225 用队列实现栈 问题描述: 使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户 内存消 阅读全文
摘要:
Leetcode 232 用栈实现队列 题目描述: 使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。 辅助栈/双栈 输入栈(负责接收输入add()) 阅读全文
摘要:
Leetcode 17 电话号码的字母组合 问题描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 2: "abc" 3: "def" 4: "ghi" 5: "jkl" 6: "mno" 7: "pqr 阅读全文
摘要:
垃圾收集策略与算法 垃圾回收只针对线程共享内存: 堆、方法区 判断对象是否存活——不被任何对象或变量引用的是无效对象,需要被回收 引用计数法——存在循环引用的问题 对象头中维护一个计数器记录对象被引用的次数,当计数为零时对象无效 可达性分析法(HotSpot) 所有和 GC Roots 直接或间接关 阅读全文
摘要:
HotSpot虚拟机对象 对象内存模型 结构: 对象头(Header) 实例数据(Instance Data) 对齐填充(Padding) 对象头: 对象指针(类型指针/数组长度/...) 哈希码 GC分代年龄 锁状态标志 线程持有的锁 偏向线程ID 偏向时间戳 实例数据: 父类成员变量 本类成员变 阅读全文
摘要:
JVM内存结构 (线程)共享内存 堆 方法区(JDK1.7 永久代(位于虚拟机数据区) → JDK1.8 元数据区(位于本地内存)) (线程)私有内存 JVM虚拟机栈 本地方法栈 程序计数器PC 程序计数器(PC) 定义: 当前线程正在执行的字节码指令的地址。若线程正在执行的是本地方法,则为Unde 阅读全文
摘要:
LeetCode 633 平方数之和 题目描述: 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。 逆向双指针逼近 对于给定的整数target,可能存在的两个整数a、b均不可能大于floor(sqrt(c)), 因此在[0, floor(sqrt(c))] 阅读全文
摘要:
LeetCode 167 两数之和II 题目描述: 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的 阅读全文
摘要:
应用层 域名系统DNS——UDP/TCP、获取域名对应的IP DNS 是一个分布式数据库,提供了主机名和 IP 地址之间相互转换的服务。 域名结构: 根域名、顶级域名、二级域名 DNS一般使用UDP进行传输,端口号为53。在以下两种情况下使用TCP进行传输: 返回的响应超过的 512 字节(UDP 阅读全文