Java
文章平均质量分 58
一叶一根
努力前行
展开
-
Hashtable源码解析
首先来一波对比,Hashtable与HashMap,这两个一看到,Hashtable是线程安全,put、remove、get、size、hashCode等方法都用了synchronized同步修饰符,而HashMap是非线程安全的。Hashtable很早(JDK1.0)就出现,从复杂度上来说,先研究一下Hashtable利于后续理解HashMap和ConcurentHashMap的设计。 ...原创 2018-06-21 15:54:21 · 1074 阅读 · 0 评论 -
HashMap resize源码分析(JDK8)
final Node<K,V>[] resize() { Node<K,V>[] oldTab = table; int oldCap = (oldTab == null) ? 0 : oldTab.length; int oldThr = threshold; int newCap, newThr = 0; ...原创 2018-06-27 10:57:21 · 1518 阅读 · 0 评论 -
JVM内存学习概要
所有的学习都需要基于原理,理解了原理才是最高效的!理解JVM的内存,可以从理解代码在是如何在虚拟机中执行的,代码是如何存储在虚拟机?一个类、方法及其实例是怎么存储的?OutOfMemory和StackOverflow是怎么出现的?带着这些问题去阅读JVM的相关文章会事半功倍,加深理解。本文也不例外!在看本文之前,需要先告知:虚拟机是基于栈去执行指令的!一、虚拟机内存区域概貌在学...原创 2018-07-25 14:12:28 · 206 阅读 · 0 评论 -
判断两个字符串中的最长相同子串
题目:判断两个字符串中相同的最长字符串?思路:1、先找到较小的字符串(A),较大字符串为B;2、循环A的字符c,判断该字符是否存在于B中,若存在则继续3,否则继续2;3、叠加A中字符c后的字符d与c组合成新的字符串c,判断新c是否在B中,在则继续3,否则4;4、判断c的长度是否大于原结果串ret的长度,是则取c,否则不做操作。继续执行2。package com;pub...原创 2018-07-28 15:59:50 · 2015 阅读 · 0 评论 -
JVM学习系列之Java内存模型
一、代码案例且看如下代码,两个线程AB分别执行doSth1和doSth2函数,输出多少种结果:maybe:flag = true a = 0flag = true a = 1如果代码改成如下呢,函数doSth2中是否可以进入 a = a - 1的计算语句,最后结果又是多少?maybe:flag = true a = 1最后的实验结果,还有可能的结果如下:...原创 2018-12-29 17:33:29 · 200 阅读 · 0 评论