- 博客(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 889 1
原创 JVM运行时数据区详聊!!
运行时数据区Java虚拟机定义了在程序执行期间使用的各种运行时数据区域。这些数据区域中的一些是在Java虚拟机启动时创建的,只有在Java虚拟机退出时才被销毁。其他数据区域是每个线程。每个线程数据区域是在线程退出时创建并销毁线程时创建的。01方法区在jvm官网中说,方法区只有一个,属于线程共享的一块内存区域,生命周期是跟虚拟机一样的。它存储每类结构,如运行时常量池、字段和方法数...
2020-02-06 15:06:03 156
原创 并发编程—ReentrantLock锁的竞争与释放(一)
1.ReentrantLock原理介绍ReentrantLock锁的获取也是基于AQS(AbstractQueuedSynchronizer)来实现的. AQS它是一个同步工具,它有两个功能一个是独占,独占就是说只有一个线程可以获取锁,也就是互斥。另外一个是共享.,共享就是可以有多个线程可以获取锁,像读写锁就是共享的。在AQS当中维护了一个双向链表,当线程发生竞争时,它会将线程封装成一个N...
2020-01-09 21:36:19 305
原创 Spring IOC源码之bean的注册过程
BeanDefition加载注册过程进入obtainFreshBeanFactory方法,这里面refreshBeanFactory方法会去创建beanFactory并加载bean进入obtainFreshBeanFactory方法,这里面refreshBeanFactory方法会去创建beanFactory并加载beanprotectedConfigurableLis...
2019-11-10 22:50:57 232
原创 Spring IOC源码之容器的体系结构
本文是以spring5.0.2.RELEASE版本说明spring源码,以xml配置的方式来说明IOC容器原理,将bean信息注册到容器当中,再对容器中的bean进行实例化,本文主要介绍bean注册到容器的过程。在阅读spring源码之前建议先阅读下JSR规范,这样更容易理解源码.一,beanFactory体系结构BeanFactory是所有bean工厂的顶级接口,ListableB...
2019-11-07 21:47:07 197
原创 HashMap原理及put与get方法调用过程
HashMap的原理 HashMap的数据结构为数组+链表,以key,value的形式存值,通过调用put与get方法来存值与取值。 它内部维护了一个Entry数组,得到key的hashCode值将其移位按位与运算,然后再通过跟数组的长度-1作逻辑与运算得到一个index值来确定数据存储在Entry数组当中的位置,通过链表来解决hash冲突问题。当发生碰撞了,对象将会储存在链表的下一个节点中。
2017-07-05 20:58:26 13924 7
空空如也
Oracle 关于视图查询问题
2015-07-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人