自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spring探秘2.1:容器启动中的refresh方法

    在前一篇文章Spring探秘2:ApplicationContext启动流程中提到了Spring容器启动的最后一步是refresh,即配置的刷新,这是容器启动过程中一个核心的步骤,实现了启动容器的主要的功能。本文会简单介绍一下AbstractApplicationContext#refresh()方法的流程,其中涉及到的比较复杂的过程还需要另外详细分...

2020-04-06 21:39:12 401

原创 Spring探秘2:ApplicationContext启动流程

     ApplicationContext是Spring框架中最基础的接口之一,可以认为其实现类就是一个Spring的环境(容器),而一个简单的Spring应用的启动过程就是一个ApplicationContext的实现类的实例化过程,是研究Spring源码的很好的切入点。这里研究的实现类是AnnotationConfigApplicationConte...

2020-03-29 00:29:21 469

原创 Spring探秘1:BeanFactory与FactoryBean

        BeanFactory和FactoryBean都是Spring框架中重要的接口,名字很像,但是功能上是有很大的不同的。先上结论相同点都是接口都没有父接口,是Spring框架中比较基础的接口不同点BeanFactory正如其接口名的暗示,是一个工厂类,用于管理(生成)Bean。也可以认为其实现类就是一个IOC容器。Facto...

2020-03-28 16:49:11 171

原创 Spring探秘0:源码构建

       从源码构建出Spring框架运行,方便探索Spring源码。构建环境OS: MacOS 10.15.2JDK 1.8Spring 源码版本:5.1.xGradle: 项目源码自带的Gardle Wrapper(gradlew)IntelliJ IDEA Ultimate 2019.3.3构建过程下载源码:直接从GitHu...

2020-03-28 16:45:58 112

原创 算法笔记:动态规划(2)

问题类型       在LeetCode上目前共有200道左右的动态规划相关的题,根据现有题目可以总结出一些题型,熟悉题型以及相关的描述能够帮助我们更准确地判断动态规划使用的场景。通向目标点的最小(最大)路径不同方法数区间合并字符串上的动态规划决策类通向目标点的最小(最大)路径问题描述      &nbsp...

2020-03-28 16:40:53 182

原创 算法笔记:动态规划(1)

何时能够使用动态规划       动态规划(Dynamic Programming, DP)与其说是一种算法,更准确地说是一种解决问题的思维方式,因为其并没有对所有相关问题抽象出一种通用的算法程序,而是要在解题时根据具体的问题运用动态规划的思想进行问题的建模并编码求解。因此在理解动态规划解题之前,首先要了解什么样的问题能够用动态规划的思想解决。&nbsp...

2020-03-28 16:38:30 263

原创 算法笔记:并查集(union-find算法)

问题建模动态连通性问题       对于一类问题,问题的输入是一些对象两两之间的“相连关系”,并且这种“相连关系”是一种等价关系,即它具有以下性质:自反性:任何对象和其自身都是相连的;对称性:如果p和q是相连的,那么q和p也是相连的;传递性:如果p和q是相连的,q和r是相连的,那么p和r也是相连的。      &...

2020-03-28 16:35:22 284

原创 JVM笔记3:线程安全与锁优化

线程安全    给“线程安全”下一个严谨且可操作的定义:当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果。Java代码与JVM实现线程安全    在编写Java代码时,有一些不同的方法...

2020-03-28 16:29:14 90

原创 JVM笔记2:垃圾收集器

JVM的垃圾收集器(Garbage Collector)管理的是Java堆和方法区的垃圾回收。GC需要完成三件事:哪些内存需要回收(即判定垃圾)?什么时候回收?如何回收(垃圾收集算法)?垃圾判定算法引用计数算法对指向对象的引用进行计数,当计数器值归零时则删除该对象。但是当出现循环引用时,相关的对象永远无法被判定为垃圾。可达性分析算法      &...

2020-03-28 16:27:01 119

原创 JVM笔记1:Java内存区域

运行时数据区域       在Java程序运行时,Java虚拟机将其管理的内存划分为不同的运行时数据区域:程序计数器       如果对计算机组成有所了解的话,应该很容易理解程序计数器(PC),可以认为其中的数据就是下一条指令的地址(字节码行号),在当前指令执行完毕后,JVM会根据PC中的数据找到下一条指令。除...

2020-03-28 16:23:05 75

原创 Java笔记4.1:HashMap源码探索

基本数据模型    在HashMap的实现中,最基本的数据模型有两个,分别是用来表示一个键值对的类Node<K, V>和用于保存所有键值对的数组transient Node<K,V>[] table;。Node<K, V>的部分定义如下:static class Node<K,V> implements M...

2020-03-28 16:21:44 81

原创 Java笔记4:Map接口

Map接口    Map用于保存键值对(key-value),其中key不允许重复。Map接口的继承树如下:可以看到,Map的子类层次与Set很像,Set接口下有HashSet,LinkedHashSet,SorterdSet,TreeSet,EnumSet;相应的,Map接口下有HashMap,LinkedHashMap,SortedMap,Tree...

2020-03-28 16:19:20 105

原创 Java笔记3:Collection接口

Java集合    Java中集合类主要用于保存、盛装其他类型的数据,因此集合类也称为容器类。所有的集合类都位于java.util包下,容器类只能保存引用类型。Java中的集合类主要有两个接口:Collection和Map,本文主要讨论Collection接口。Collection接口的继承树如下:Set接口Set接口与Collection基本相同...

2020-03-28 16:16:14 102

原创 Java笔记2:String,StringBuilder,StringBuffer

String、StringBuilder和StringBuffer的区别StringStringBuilderStringBuffer是否可变不可变可变可变线程安全安全1不安全安全拼接方法+ 或 concat方法append方法append方法拼接性能最差2最好中间3适用情况很少字符串操作单线程大量字符串操作多线程大量...

2020-03-28 16:12:27 103

原创 Java笔记1:Object类源码

Object类是Java类层次结构的根节点,定义了一些最抽象的方法。registerNatives()private static native void registerNatives();static { registerNatives();}       是一个本地方法,并且该方法在静态代码块中,因此所有对象在创建时,都会先调用该...

2020-03-28 16:10:20 67

Linux程序设计-严冰-浙大出版社

Linux程序设计-严冰-浙大出版社 PDF扫描版

2014-09-08

空空如也

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

TA关注的人

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