自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 JVM堆区内存分布

JVM堆区内存又分为老年代old区,新生代eden区,新生代又分为S0与S1区,当对象刚创建时会首先被分配到新生代,当经过一次GC以后存活下来的对象有可能会被放入S区,如果S区存活的对象过多放不下时,JVM提供了一种担保机制会从老年代借点空间过来。当经过多次GC后存活下来的对象超过一定的次数后会被移入到老年代。新生代与老年代的比例是1:2,eden区与S0,S1的比例是8:1:1为什么要对...

2020-03-11 17:49:12 846 1

原创 JVM运行时数据区详聊!!

运行时数据区Java虚拟机定义了在程序执行期间使用的各种运行时数据区域。这些数据区域中的一些是在Java虚拟机启动时创建的,只有在Java虚拟机退出时才被销毁。其他数据区域是每个线程。每个线程数据区域是在线程退出时创建并销毁线程时创建的。01方法区在jvm官网中说,方法区只有一个,属于线程共享的一块内存区域,生命周期是跟虚拟机一样的。它存储每类结构,如运行时常量池、字段和方法数...

2020-02-06 15:06:03 130

原创 并发编程—ReentrantLock锁的竞争与释放(一)

1.ReentrantLock原理介绍ReentrantLock锁的获取也是基于AQS(AbstractQueuedSynchronizer)来实现的. AQS它是一个同步工具,它有两个功能一个是独占,独占就是说只有一个线程可以获取锁,也就是互斥。另外一个是共享.,共享就是可以有多个线程可以获取锁,像读写锁就是共享的。在AQS当中维护了一个双向链表,当线程发生竞争时,它会将线程封装成一个N...

2020-01-09 21:36:19 277

原创 Spring IOC源码之bean的注册过程

BeanDefition加载注册过程进入obtainFreshBeanFactory方法,这里面refreshBeanFactory方法会去创建beanFactory并加载bean进入obtainFreshBeanFactory方法,这里面refreshBeanFactory方法会去创建beanFactory并加载beanprotectedConfigurableLis...

2019-11-10 22:50:57 206

原创 Spring IOC源码之容器的体系结构

​本文是以spring5.0.2.RELEASE版本说明spring源码,以xml配置的方式来说明IOC容器原理,将bean信息注册到容器当中,再对容器中的bean进行实例化,本文主要介绍bean注册到容器的过程。在阅读spring源码之前建议先阅读下JSR规范,这样更容易理解源码.一,beanFactory体系结构BeanFactory是所有bean工厂的顶级接口,ListableB...

2019-11-07 21:47:07 167

原创 HashMap原理及put与get方法调用过程

HashMap的原理 HashMap的数据结构为数组+链表,以key,value的形式存值,通过调用put与get方法来存值与取值。 它内部维护了一个Entry数组,得到key的hashCode值将其移位按位与运算,然后再通过跟数组的长度-1作逻辑与运算得到一个index值来确定数据存储在Entry数组当中的位置,通过链表来解决hash冲突问题。当发生碰撞了,对象将会储存在链表的下一个节点中。

2017-07-05 20:58:26 13840 7

空空如也

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

TA关注的人

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