- 博客(23)
- 资源 (25)
- 收藏
- 关注
原创 GC中的STW、OopMap、safePoint安全点、safeRegion
文章目录一. 问题背景二. 为什么会有safePoint三. safePoint是什么四. 线程停顿的方式4.1 抢先式中断4.2 主动式中断五. safePoint出现在哪些位置六. safeRegion七. 总结一. 问题背景遇到一个面试题“垃圾收集器”,其中涉及到了safepoint安全点,所以今天了解一下safepoint安全点此笔记仅供自己参考,如有错误请指正参考:GCRoot与safePoint二. 为什么会有safePointGC Root包括以下对象:虚拟机栈中引用的对象方
2020-05-31 11:06:18 1098
原创 jvm类加载器
文章目录一. 问题背景二. 类加载器2.1 简介2.2 类与类加载器三. 双亲委派模型Parents Delegation Model3.1 自带的3种类加载器3.1.1 启动类加载器Bootstrap ClassLoader3.1.2 扩展类加载器Extension ClassLoader3.1.3 应用程序类加载器Application ClassLoader3.2 详述双亲委派模型3.2.1 双亲委派模型工作过程一. 问题背景遇到一个面试题“简述java类加载机制”,今天了解一下类加载器此笔记仅
2020-05-30 19:54:47 177
原创 jvm类加载
文章目录一. 问题背景二. 类加载2.1 简介2.2 加载阶段2.3 链接阶段2.3.1 验证阶段2.3.2 准备阶段2.3.3 解析阶段2.4 初始化阶段2.4.1 导致类初始化的情况2.4.2 不导致类初始化的情况一. 问题背景遇到一道面试题“简述java类加载机制”。今天了解一下类加载。此笔记仅供自己参考,如有错误请指正参考:java中级程序员必会的教程,解密JVM【黑马程序员出品】二. 类加载我们编译的java代码都是以.java格式文件保存的,而它是不能被jvm执行。jvm需要将.ja
2020-05-29 16:29:36 222
原创 Java对象什么时候死亡、finalize()方法的执行过程
文章目录一. 问题背景二. 储备知识2.1 引用2.1.1 强引用Strong Reference2.1.2 软引用Soft Reference2.1.3 弱引用Weak Reference2.1.4 虚引用Phantom Reference2.2 可达性算法2.3 哪些对象可以作为GC Root一. 问题背景遇到一个面试题“GC的两种判定方法(如何判断一个对象是否存活?)”,其中涉及引用计数法和可达性算法,而当一个对象经过可达性分析,会涉及两次标记,其中又涉及finalize()。因此今天了解一下Ja
2020-05-25 14:20:50 370
原创 Java的对象组成简介
文章目录一. 问题背景二. 对象的组成2.1对象头Object Header2.1.1 Mark Word2.1.2 Klass Word(指向类的指针)2.1.3 数组长度array length2.2 实例数据Instance Data2.3 对齐填充字节padding一. 问题背景遇到一个面试题“对象的内存布局”,其中涉及对象的组成。今天了解一下Java对象组成。(以HotSpot虚拟机为例子)此笔记仅供自己参考,如有错误请指正参考:Java的对象头和对象组成详解二. 对象的组成对象的组成
2020-05-24 15:28:39 4821
原创 Jav的空闲链表简介
一. 问题背景有一条面试题”对象的创建方法“涉及空闲链表,与之对应的内存分配规则还有指针碰撞,今天来简单的了解一下指针碰撞。此笔记仅供自己参考,如有错误请指正参考自:一张图解释指针碰撞和空闲列表二. 空闲链表简单介绍空闲链表...
2020-05-24 11:22:54 13023
原创 对象分配流程、栈分配与TLAB的区别
文章目录一. 回顾二. 区别2.1 栈分配2.2 TLAB2.3 总结三. 对象分配流程一. 回顾前面了解了jvm中的逃逸分析和jvm中的TLAB,今天对两者的区别进行分析。参考自:关于栈上分配和TLAB的理解此笔记仅供自己参考,如有错误请指正二. 区别2.1 栈分配栈分配是属于逃逸分析里面的,详情见jvm中的逃逸分析。当一个对象没有逃离当前方法或线程,其生命周期与方法一致,随着栈帧出栈而销毁,那么我们jvm的逃逸分析技术则不将该对象分配在堆中,而是分配在栈中(即栈分配),将对象分解成成员标
2020-05-23 18:48:24 358
原创 jvm中的TLAB
文章目录一. 回顾二. TLAB的来源2.1 逃逸分析2.2 指针碰撞一. 回顾前面了解了jvm中的逃逸分析,今天了解一下TLAB(Thread Local Allocation Buffer)。本文仅供自己参考,如有错误请指正参考自:浅析java中的TLAB二. TLAB的来源有两个:逃逸分析;指针碰撞2.1 逃逸分析详情见jvm中的逃逸分析2.2 指针碰撞...
2020-05-23 16:19:28 1123
原创 Java的指针碰撞简介
一. 问题背景在了解TLAB的来源时涉及指针碰撞此笔记仅供自己参考,如有错误请指正二. 指针碰撞2.1 简介2.2 碰撞的可能情况还有其他情况不一一详述,在此只是为了表达什么是指针碰撞而已...
2020-05-23 15:32:42 3763
原创 jvm中的逃逸分析
文章目录一. 问题背景二. 逃逸分析2.1 什么是逃逸分析?2.2 逃逸分析的jvm参数2.3 一个对象的逃逸状态2.3.1 全局逃逸GlobalEscape2.3.2 参数逃逸ArgEscape2.3.3 没有逃逸2.4 逃逸分析后,有什么作用(好处)?(即逃逸分析优化)2.4.1 锁消除EliminateLocks2.4.2 标量替换Scalar Replacement2.4.3 栈分配三. 总结一. 问题背景遇到一个面试题堆中的分区:Eden,survival(from+to),老年代,各自的特点
2020-05-22 21:31:56 565
原创 TreeMap常见问题
一. 回顾前面TreeMap原理(浅谈)了解了TreeMap的实现。现对TreeMap常见问题作一下总结本文仅供自己参考,如有错误请指正二. 常见问题2.1 如何用TreeMap实现一致性hash?一致性hash,笔者综合博客文章,它是源自MemCache引发的。MemCache的详细介绍参考:MemCache详细解读什么是MemCache?MemCache是一个内存对象缓存系统。用于动态web应用以减轻数据的负载。通过在内存中缓存数据和对象减少访问数据库的次数,从而提高网站访问的速度。Me
2020-05-15 18:50:25 430
原创 TreeMap原理(浅谈)
一. 回顾前面了解了LinkedHashMap原理(浅谈),今天了解一下TreeMap。二. 储备知识在了解TreeMap前,了解以下两个知识比较容易理解:Comparable和Comparator;一致性hash2.1 Comparable和Comparator详情见Comparable和Comparator的知识点以及两者的区别2.2 一致性hash参考MemCache详细解读三. TreeMappublic class TreeMap<K,V> extends A
2020-05-15 13:58:44 2757
原创 Comparable和Comparator的知识点以及两者的区别
一. 问题背景在了解TreeMap实现原理的过程中,了解到它必须实现Comparable或Comparator。为什么要实现这个接口,两者有什么区别?看到TreeMap源码有注释写着如下:在这里插入代码片
2020-05-14 20:52:32 840
原创 LinkedHashMap常见问题LinkedHashMap实现LRU
一. 回顾前面根据源码分析了解LinkedHashMap原理(浅谈),现在对LinkedHashMap常见问题进行总结。本博客仅供自己学习完后总结参考,如有错误请指正二. 常见问题2.1 LinkedHashMap的原理是怎么样的?LinkedHashMap原理(浅谈)2.2 LinkedHashMap有哪两种有序?插入顺序和访问顺序。是根据成员变量accessOrder决定的。其访问顺序可以实现LRU。2.3 如何用LinkedHashMap实现LRU?继承LinkedHashMap或构
2020-05-13 11:40:12 409
原创 LinkedHashMap原理(浅谈)
一. 回顾前面深入了解了HashMap实现原理以及HashMap常见问题,今天简略了解LinkedHashMap原理。此笔记仅供自己学习完后复习回顾参考,还有很多待提高的地方,如有错误请指正二. LinkedHashMap打开IDEA,按两下shift搜索LinkedHashMap,打开源码,可以看到如下: * @since 1.4 */public class LinkedHashMap<K,V> extends HashMap<K,V> impl
2020-05-13 11:30:16 921
原创 HashMap常见问题
一. 问题背景上一篇HashMap源码分析大概了解了HashMap的数据结构,以及实现原理。对常见的问题作一下总结。本文仅供笔者自己参考,如有不正确地方请指正,谢谢大家。二. 常见的问题2.1 hashmap如何解决hash冲突,为什么hashmap中的链表需要转成红黑树?hashmap采用链地址法解决冲突。链表的最坏查询情况是O(n),而红黑树是一颗二叉查找树,最坏的查询情况是O(logN)。当桶的链表变长,查询性能也跟着下降。而使用红黑树,查询性能能大大提高。对于增删操作,因为红黑树不是绝对平
2020-05-12 20:19:28 3322
原创 HashMap源码分析
一. 问题背景在看Java面试题的时候看到HashMap的问题比较多,所以学习了HashMap的实现原理。使用源码分析加百度搜索博客等等综合分析。本人小白,做此笔记仅供自己参考,有不恰当的地方请指出。二. 储备知识了解以下知识有助于更好地理解HashMap的结构。如下:HashMap怎么分配数组下标?答:使用hash函数,详情下面会讲述。三. HashMap的成员变量打开idea,创...
2020-05-09 13:57:45 287
原创 红黑数R-B Tree
一. 知识储备1.1 满二叉树、完全二叉树、平衡二叉树满二叉树:除了叶子节点,每个节点都有左右子节点。如下:**完全二叉树:最下面的两层节点数小于2。且最下一层的节点都集中在该层最左边的若干位置。**如下:由上面可知,满二叉树从右边删去节点,可以得到完全二叉树。所以满二叉树是完全二叉树。反过来则不成立。平衡二叉树:是一个二叉查找树,且左右子树的高度差不大于1。有一个平衡因子,用来衡...
2020-05-05 21:19:53 188
原创 Day31——引入bootstrap资源
一. 引入资源二. 指定首页映射路径2.1 问题背景静态资源文件public有一个index.html页面,templates文件夹也有一个index.html页面,我想要首页访问的是后者的index.html而不是前者的。2.2 方法方法一:在controller方法里面指定请求路径(原理是,指定路径后,模板引擎会自动到templates文件夹下去找),如下:@RequestMap...
2020-05-03 21:18:43 278
原创 Day30——全面接管SpringMVC以及如何修改SpringBoot的默认配置
一. 回顾前面讲了Day29——SpringMVC自动配置原理,从自动配置原理总结出如何修改SpringBoot的默认配置?二. 扩展SpringMVC仅靠SpringBoot的自动配置有时可能不够用。我们需要自己定义配置。比如以前在springmvc.xml中配置视图映射。<mvc:view-controller path="/hello" view-name="success"/...
2020-05-02 21:57:07 190
原创 Day29——SpringMVC自动配置原理
一. 知识储备了解SpringBoot的SpringMVC自动配置原理可以从官方文档和源码下手。如下:我们打开SpringBoot官网,如下:下面就可以见到SpringBoot默认配置的SpringMVC1.1 ContentNegotiatingViewResolver & BeanNameViewResolver这两个的作用是自动配置了ViewResolver(视...
2020-05-02 20:20:48 383
原创 Comparator实现排序
一. 问题背景将Map<Integer, User>中的User中的age进行倒叙排序。二. 解决package com.atguigu;import java.util.*;public class Main { public static void main(String[] args) { HashMap<Integer, User&g...
2020-05-01 11:13:20 230
nacos自动服务注册.jpg
2021-01-08
nacos服务注册流程调用.jpg
2021-01-08
SSM整合实例——显示所有员工信息列表.zip
2020-02-13
MyBatis分页插件.zip
2020-02-12
使用MyBatis实现基本的CRUD操作.zip
2020-02-10
MyBatis helloworld Mapper接口开发.zip
2020-02-10
使用SpringMVC的ModelAndView.zip
2020-02-07
使用Springmvc创建一个HelloWorld.zip
2020-02-02
用newProxyInstance方式和getProxyClass方式动态代理.zip
2020-01-31
Spring使用XML方式进行自动装配.zip
2020-01-30
引用外部文件配置C3P0连接池.zip
2020-01-29
配置C3P0连接池.zip
2020-01-29
FactoryBean.zip
2020-01-28
spring中的list、map.zip
2020-01-28
字面量、空值、引用其他Bean.zip
2020-01-28
通过spring获取Bean.zip
2020-01-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人