Java基础
LaMole_Ryouji
这个作者很懒,什么都没留下…
展开
-
JVM内存模型 & 垃圾回收机制,面试必会
原创 2021-06-19 23:27:24 · 160 阅读 · 0 评论 -
JAVA集合
文章目录TreeSet vs HashSet vs LinkedHashSet迭代器模式ArrayListFast FailCopyOnWriteArrayList掩码计算方法(mask)LinkedHashMap 实现LRU TreeSet vs HashSet vs LinkedHashSet TreeSet红黑树,指定排序字段,查找效率O(logN) HashSet 查找效率O(1) LinkedHashSet内部使用双向链表维护插入顺序 迭代器模式 hash的迭代器实现 ArrayList 扩容1原创 2020-08-07 08:36:15 · 144 阅读 · 0 评论 -
Java多线程面试常见问题
线程状态 来源于https://www.uml-diagrams.org/java-thread-uml-state-machine-diagram-example.html原创 2020-07-25 17:40:02 · 200 阅读 · 0 评论 -
JVM运行时数据区
文章目录程序计数器JVM栈本地方法栈堆方法区对象创建过程对象头锁优化锁膨胀 区别于JAVA线程模型 5大区域 程序计数器、jvm栈,本地方法栈,堆,方法区 前三个线程私有,后两个线程共享 程序计数器 执行的是本地方法的话,值为null,没有规定OOM JVM栈 里面存储着栈帧,一个方法的执行过程就是一个栈帧的入栈和出栈 有OOM 和StackOverFlow 栈帧 包括局部变量表 变量槽为最小单位(4字节) long和double占2个槽 可以存放八种基本类型+reference+returnAd原创 2020-07-25 17:38:39 · 154 阅读 · 0 评论 -
JVM 垃圾回收算法 & 垃圾回收器
文章目录分代收集理论GC种类垃圾回收算法标记-清除标记-整理标记-复制什么样的对象直接进入老年代CMS回收流程初始标记并发标记并发清除经典垃圾收集器Serial(New Old)ParNew(New)Parallel Scavenge(New)Parallel Old(是Parallel Scavenge的老年代收集器)CMSG1G1 vs CMS 分代收集理论 弱分代假说:绝大多数对象都是朝生夕死 强分代假说:熬过越多次垃圾回收的对象越难以消亡 跨代引用假说:跨代引用相对于同代引用是极少数 根据1、2原创 2020-07-25 17:35:56 · 154 阅读 · 0 评论 -
JVM类加载器相关
类加载阶段 加载 连接(验证、准备、解析) 初始化 使用 卸载 解析和初始化的相对顺序不确定,为了支持动态绑定,解析可能在初始化之后 加载 启动(Bootstrap)类加载器 启动类加载器是用本地代码实现的类加载器(特殊的机器指令),它负责将JAVA_HOME/lib下面的核心类库或-Xbootclasspath选项指定的jar包等虚拟机识别的类库加载到内存中。由于启动类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用(unsafe类用这个判断是否由启动类加载器加载)。具体可由启动原创 2020-07-25 17:33:24 · 87 阅读 · 0 评论