自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 JDK源码——java.util

看了Collection与AbstractCollection 先说说AbstractCollection虚类,里面大部分方法都很简单没什么好说的,说个我最重要的收获:数组每次扩容时,增加的容量为当前容量的二分之一,代码如下 扩展一点>>、<<这两者都是位移操作意思是先把当前值转成二进制然后向右或向左移动位,举个例子 3 >> 1 = 1;左移一位相当于在二进制上乘10,二进制的10等于十进制2

2016-11-29 10:14:35 720

原创 JAVA内存模型与线程

Java内存的主要目的是定义程序中各个变量的访问规则,即虚拟机将变量存储到内存和从内存读取变量这样的细节.这里的变量指实例字段、静态字段和构成数组对象的元素,不包括局部变量和方法参数(线程私有,不涉及共享)  Java内存模型规定所有的变量都储存在主内存中(可以对应堆中的对象实例);每条线程还有自己的工作内存,线程的工作内存中保存了该线程使用到的变量的主内存的副本拷贝,线程对变量的所有操作(读取、

2016-11-27 22:10:49 322

原创 JVM字节码执行引擎

賊难理解,慢慢整理

2016-11-24 07:33:09 475

原创 JVM类加载机制

类加载顺序:装载 通过全限定类名载入对应的二进制字节流把二进制字节流转化成方法区的数据结构通过方法区的数据结构创建一个java.lang.Class对象,作为访问该类的入口 说到加载不得不提到类加载器(classLoder) 类加载器:”通过类的全限定类名来获取类对应的二进制字节流”的实现的代码模块被称为类加载器. 对于任意一个类,都需要由加载他的类加载器和这个类本身确立其在jvm

2016-11-21 07:31:58 354

原创 JDK源码——java.lang

前段时间开始看了一下java.lang的部分源码,但因这部分东西比较琐碎无法形成系统的文档,因此一直没有记录下来,但后来一想,就算琐碎也还是记录下来的好,就当给自己的进步留下一点痕迹,如果给自己和其他同学一点启示那就更好了先聊一下三个最常见的类:StringBuffer,StringBuilder,String StringBuffer与StringBuilder,他们两个有共同的父类Abstra

2016-11-18 10:39:29 1057

原创 GC垃圾收集器

我前面有一篇文章简单的介绍过JAVA垃圾回收,现在咱们来讨论一下垃圾收集器. 首先,什么是垃圾收集器,我前面的文章中有介绍到垃圾回收的算法,垃圾收集器其实就是垃圾回收算法的具体实现. 或许很多同学不知道,在JDK中默认的JVM是hotsopt,因此咱们接下来谈论的垃圾收集器全都是基于hotspot的.怎么查看jvm版本?就是大家都很熟悉的java -version,如图 垃圾收集器的种类:

2016-11-17 22:00:08 342

原创 springAOP源码解析(一)

首先讲一下aop的概念,aop面向切面编程.我的理解是这是面向对象思想的一种进阶,把特定的逻辑与主逻辑分开处理,再通过一定的方式组合起来形成完整的处理过程. 下面说一下AOP的几个重要概念(都是我自己的理解,概念上肯定有偏差,但便于我记忆): 通知(advice):即要在主逻辑处运行的逻辑.advice是个空接口,常用的实现由beforceAdvice、afterAdvice、ThrowsAdv

2016-11-15 07:40:21 451

原创 springIOC源码解析(六)

咱们接着finishBeanFactoryInitialization()方法讲// Instantiate all remaining (non-lazy-init) singletons.finishBeanFactoryInitialization(beanFactory);注释写的很清楚了,初始化所有非懒加载的单例bean,咱们进去看看怎么做的protected void finishBe

2016-11-11 16:55:36 429

原创 springIOC源码解析(五)

现在咱们来看一下ApplicationContext的方式是怎么管理bean的ApplicationContext ctx = new ClassPathXmlApplicationContext("springioc.xml");Engine engine2 = (Engine)ctx.getBean("engine");System.out.println(engine2.getBrandN

2016-11-11 16:03:57 372

原创 springIOC源码解析(四)

这两天工作比较闲,上午的时候我又仔细看了一遍spring初始化bean加载流程,下面我挑重点写一下我的收获spring如何保持bean的单例 对于singleton的bean而言,spring在初始化bean之后,会把beanName及bean实例保存到一个map中(DefaultSingletonBeanRegistry中的singletonObjects);当再次要获取bean实例时直接从m

2016-11-10 16:44:21 404

原创 springIOC源码解析(三)

上回讲到如何通过getBean方法来获取bean,这里感觉流程比较复杂,不知道以我的水平是否能讲清楚,如果有不清楚的地方欢迎讨论Engine engine = (Engine)beanFactory.getBean("engine");OK,不多废话追寻源码,这时候会遇到第一个问题XmlBeanFactory中没有getBean(String str)方法,经过查找在其父类AbstractBeanF

2016-11-08 22:15:01 442

原创 springIOC源码解析(二)

上一篇文章讲到解析XML的parseBeanDefinitions(root, this.delegate)方法,首先看看源码 此处isDefaultNamespace方法是获取namespace为http://www.springframework.org/schema/beans的node,可以看到,这里是循环循环处理节点,咱们来看我标红的那行, 可以看到目前对应schema定义的包括”

2016-11-08 18:44:34 503

原创 springIOC源码解析(一)

spring源码我也不是很了解,原来几次下定决心去看但一直不知道入口在哪里,但这是进阶必须要迈过的一个坎,下面我按照自己现在的思路来对spring源码进行阅读,首先从spring如何管理bean开始 首先咱们看看spring管理bean的一个小demopublic class Test { public static void main(String[] args) { /

2016-11-06 17:34:54 548

空空如也

空空如也

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

TA关注的人

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