- 博客(4)
- 收藏
- 关注
原创 Java数据结构之HashMap源码(基于JDK1.8)阅读(二)
开篇请读者思考一个问题new HashMap()和new HashMap(0)的区别是什么?new HashMap(3)和new HashMap(10)的初始容量又是多少呢?回答这个问题必然要看下HashMap的构造函数。在JDK1.8中HashMap共有三个构造函数无参构造public HashMap() { this.loadFactor = DEFAULT_LOAD_FACTOR; // all other fields defaulted }有参构造
2021-10-21 10:22:43 58
原创 tomcat源码阅读(二)之三个类加载器的定义的意义与如何初始化它们
上文说到,在初始化完catalina,home和catalina.base目录后,又定义了三个类加载器,这三个类加载器还是挺重要的,三个类加载器分别是:CommonLoader、CatalinaLoader、SharedLoader思考一个问题,为什么要定义三个类加载器?在《深入理解java虚拟机》这本书中,书中解释到tomcat作为一个主流的web服务器,那么一个功能健全的web服务器,需要解决以下几个问题:1.部署在同一个服务器上的两个web应用程序所使用的java类库可以实现相互隔离。这是
2021-10-16 10:16:59 135
原创 tomcat源码阅读(一)之Bootstrap启动类的加载
刚刚用idea编译了下tomcat-8.5的源码,打算写个博客来研究研究tomcat,提升提升自己对于tomcat的理解。其实tomcat启动也是靠一个main方法。该main方法是在catalina.startup包下的Bootstrap类中的,让我们来看下这个main方法中到底干了些什么东西。一步一步来,首先jvm运行main方法的时候会先加载该类的父类的静态属性和静态代码块,由于Bootstrap类没有父类,所以直接先加载本类的静态属性和静态代码块,如下在静态代码块中,String userD
2021-10-10 21:39:09 221 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人