自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 HashMap原理,HashMap,HashTable, ConcurrentHashMap对比

HashMap原理1.7及之前,默认链式Hash存储从 JDK 1.8 开始,一个桶存储的链表长度大于等于 8 时会将链表转换为红黑树。用key的hashCode值对容量取模, 开链法,头插法。如果size >= threshold(这个由装载因子决定)时, 进行扩容,容量扩为原来的两倍(方便重新计算下标,比如原来的位置+原容量),重新把key, value插入。HashMap,HashTable, ConcurrentHashMap对比HashMap是非线程安全的, 允许null值(因为

2020-08-24 21:55:01 205

原创 JAVA多线程实现,线程状态,线程池使用,Threadlocal

有三种使用线程的方法:实现 Runnable 接口;实现 Callable 接口;与 Runnable 相比,Callable 可以有返回值,返回值通过 FutureTask 进行封装。继承 Thread 类。同样也是需要实现 run() 方法,因为 Thread 类也实现了 Runable 接口。当调用 start() 方法启动一个线程时,虚拟机会将该线程放入就绪队列中等待被调度,当一个线程被调度时会执行该线程的 run() 方法。实现 Runnable 和 Callable 接口的类只

2020-08-24 21:42:05 333

原创 Leetcode 201. 数字范围按位与

给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。示例 1:输入: [5,7]输出: 4示例 2:输入: [0,1]输出: 0tips: 转换为求m, n 的最长公共前缀class Solution { public int rangeBitwiseAnd(int m, int n) { if(m == 0) { return 0;

2020-08-23 18:06:47 244

原创 JVM 内存模型,垃圾回收,垃圾收集器

运行时数据区域:线程共有:方法区、堆方法区:用于存放已被加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。堆:所有的对象都在这里分配内存,是垃圾收集的主要区域,现代的垃圾收集算法都采用分代收集算法,可以将堆分为两块,新生代,老生代。不需要连续的内存,可以动态增加,增加失败会抛OOM异常。线程私有:程序计数器,虚拟机栈,本地方法栈程序计数器:记录正在执行的虚拟机字节码指令的地址虚拟机栈:每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调

2020-08-23 14:41:41 200

原创 LeetCode 面试金典 面试题 02.08. 环路检测

给定一个链表,如果它是有环链表,实现一个算法返回环路的开头节点。有环链表的定义:在链表中某个节点的next元素指向在它前面出现过的节点,则表明该链表存在环路。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node index 1解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = 0输出:tail connects to node index 0解释:链表中有一个环,其尾部连接到第

2020-08-18 15:11:06 130

原创 LeetCode 面试金典面试题 02.06. 回文链表

编写一个函数,检查输入的链表是否是回文的。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/palindrome-linked-list-lcci著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。O(n) 时间复杂度和 O(1

2020-08-18 14:30:35 177

原创 LeetCode 程序员面试金典 面试题 03.05. 栈排序

栈排序。 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:push、pop、peek 和 isEmpty。当栈为空时,peek 返回 -1。示例1:输入:[“SortedStack”, “push”, “push”, “peek”, “pop”, “peek”][[], [1], [2], [], [], []]输出:[null,null,null,1,null,2]示例2:输入:[“Sorted

2020-08-17 17:04:31 235

原创 LeetCode 程序员面试经典面试题 04.06. 后继者

设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。如果指定节点没有对应的“下一个”节点,则返回null。示例 1:输入: root = [2,1,3], p = 12/ \1 3输出: 2示例 2:输入: root = [5,3,6,2,4,null,null,1], p = 6 5 / \3 6/ 2 4/1输出: null有递归法和非递归法:思想类似, 与root 节点比较,若p.val >= root.val, 从右子

2020-08-16 22:14:01 152

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除