摘要: 方法调用: 方法调用不同于方法执行,方法调用阶段唯一任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不执行方法内部的具体过程。方法调用有,解析调用,分派调用(有静态分派,动态分派)。 方法解析: 解析调用一定是一个静态的过程,在编译期就完全确定,可以在类加载的解析阶段就把涉及的符号引用转化为 阅读全文
posted @ 2018-01-01 16:52 流沙若水 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 代理模式有静态代理和动态代理 静态代理:提到代理,我们首先想到的就是代理商了,代理商就是替厂家卖产品,这里有三个关键的地方,第一点,卖产品的行为是代理商做的(至少对于消费者来说,消费者接触的就是代理商);第二产品是厂家的(也就是说代理商卖的商品是厂家的,而代理商是没有产品的,从这点来说实质上还是厂家 阅读全文
posted @ 2017-12-29 21:35 流沙若水 阅读(210) 评论(0) 推荐(0) 编辑
摘要: volatile: 定义:Java编程语言允许线程访问共享变量,为了确保共享变量内被准确和一致性地更新,线程应该确保通过排它锁单独获得这个变量。根据volatile的定义,volatile有锁的语义。 作用:1.保证共享变量的可见性(这是volatile作为轻量级锁的基础); 这里可见性的意思是:当 阅读全文
posted @ 2017-12-28 10:29 流沙若水 阅读(703) 评论(0) 推荐(0) 编辑
摘要: Iterator与ListIterator 相同点:(1)两者都是fail-fast机制,都是作为内部类实现的。 区别:二者的区别主要是功能上的; (1)Iterator实现了接口Iterator,属性有cursor(下一个要遍历的元素索引),lastRest(上一个遍历元素的索引), 方法有,ha 阅读全文
posted @ 2017-11-14 17:31 流沙若水 阅读(738) 评论(0) 推荐(0) 编辑
摘要: ArrayList特点: ArrayList方法实现: 扩容方法的实现: 源码: clone方法分析: ArrayList中的clone()方法为浅克隆,克隆后的集合对象与原有的集合对象不是同一个对象(即,指向不同的内存空间),但是它们集合元素引用的对象都是相同的。 源码: 示例程序: ArrayL 阅读全文
posted @ 2017-11-12 17:46 流沙若水 阅读(232) 评论(0) 推荐(0) 编辑
摘要: HashMap特点: HashMap具体方法分析: put方法分析: 执行流程图: hash()算法分析: 源码: 一个较好的hash算法就是让所有的对象中的值都体现用处,hashCode()已经满足了这点,而我们在hashCode()的基础上设置新的hash算法时也要体现这一点,如何体现这一点,就 阅读全文
posted @ 2017-11-12 11:32 流沙若水 阅读(660) 评论(0) 推荐(0) 编辑
摘要: 在web.xml中配置加载spring时,发现项目无法运行;而去掉spring的配置时,项目可以被初始化。 此时应考虑到spring的配置文件中存在错误,以至于web容器无法对项目成功初始化,在web.xml中配置log4j, 根据打印的信息对spring的配置进行修改。 <context-para 阅读全文
posted @ 2017-10-18 22:46 流沙若水 阅读(729) 评论(0) 推荐(0) 编辑
摘要: 面向对象: 从现实世界中客观存在的事物(对象)出发构造软件系统,并在软件系统构造中运用人类的自然思维方式,强调直接以现实世界中的事物为中心来思考,认识问题,并根据这些事务的本质特点,将他们抽象为系统中的类,作为系统的基本单元,这使得软件系统中的组件直接映像到客观世界,并保持客观世界中事物及其相互关系 阅读全文
posted @ 2017-09-29 16:34 流沙若水 阅读(149) 评论(0) 推荐(0) 编辑