package org.springframework.beans; public abstract class BeanUtils /** * Copy the property values of the given source bean into the given target bean. * <p>Note: The source and target classes do not have to match or even be derived * from each other…
分析jQuery源码时记录的一点感悟      1.  链式写法      这是jQuery语法上的最大特色,也许该改改POJO里的set方法,和其他的非get方法什么的,可以把多行代码合并,减去每次敲打对象变量的麻烦      2.  动态参数      偶尔使用Java的动态数组,取出调用时参数个数的限制,可以减少对同一个方法的反复调用      3.  弱化类型      偶尔将参数类型设为Object,多使用泛型,可以减少方法数,简化调用时的类型转换,类型转换在方法内进行      4.…
EventBus源码阅读记录 repo地址: greenrobot/EventBus EventBus的构造 双重加锁的单例. static volatile EventBus defaultInstance; public static EventBus getDefault() { if (defaultInstance == null) { synchronized (EventBus.class) { if (defaultInstance == null) { defaultInsta…
背景 公司业务性能优化,使用java自带的Executors.newFixedThreadPool()方法生成线程池.但是其内部定义的LinkedBlockingQueue容量是Integer.MAX_VALUE.考虑到如果数据库中待处理数据量很大有可能会在短时间内往LinkedBlockingQueue中填充很多数据,导致内存溢出.于是看了一下线程池这块的源码,并在此记录. 类图 Executor是一个顶层接口,在它里面只声明了一个方法execute(Runnable),返回值为void,参数…
前些日子看<深入理解javaweb开发>时,看到第一章java的io流,发觉自己对io流真的不是很熟悉.然后看了下JDK1.7中io包的一点点代码,又看了org.springframework.core.io包的一些类和组织方式,当作是学习吧.总结一下. 先挂下spring.core.io包的类图,其中接口是方框表示,抽象类带了abstract前缀,剩下那个两个框重贴的则代表实现类.没怎么划过类图,如果有好的画类图工具请推荐给我. 画得不好的地方就见谅了.注:以下源码匹配的是spring-co…
hashMap作为java开发面试最常考的一个题目之一,有必要花时间去阅读源码,了解底层实现原理. 首先,让我们看看hashMap这个类有哪些属性 // hashMap初始数组容量 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 // 最大容量 static final int MAXIMUM_CAPACITY = 1 << 30; // 装载因子 static final float DEFAULT_LO…
Java IO 源码研究: 一.输入流 1  基类 InputStream 简介: 这是Java中所有输入流的基类,它是一个抽象类,下面我们简单来了解一下它的基本方法和抽象方法. 基本方法: public void mark(int readLimit) 标记方法,标准做法是将当前输入流的位置标记下来,等待在某一时刻回到这个位置(当调用了reset方法时) public boolean markSupported() 判断 mark 方法是否可用,若返回 false  则  mark  和 re…
这几天有大神推荐读underscore源码,趁着项目测试的空白时间,看了一下. 整个underscore包括了常用的工具函数,下面以1.3.3源码为例分析一下. _.size = function(obj) { return _.isArray(obj) ? obj.length : _.keys(obj).length; }; 整个underscore源码基本上都是以上这种方式写的,所以弄懂上面这段源码,整个underscore的源码就大概清楚了六七成了,剩下的源码用些时间,也就迎刃而解. 因…
Tomcat作为开源的轻量级WEB服务器,虽然不是很适合某些大型项目,但是它开源,读其源代码可以很好的提高我们的编程功底和设计思维.Tomcat中用到了很多比较好的设计模式,其中代码风格也很值得我们去效仿.前阵子看了Tomcat源码分析这本书,特此过来分享分享自己的学习过程记录.说得不好,大神不要喷我. 也不废话了,直入主题上代码.Tomcat是什么,Tomcat是一个web服务器,能够接收请求,作出响应.接收请求,作出响应让我们联想到Socket编程.我们可以起一个线程服务ServerSock…
  线程是程序执行的最小单元,多线程是指程序同一时间可以有多个执行单元运行(这个与你的CPU核心有关). 在java中开启一个新线程非常简单,创建一个Thread对象,然后调用它的start方法,一个新线程就开启了. 那么执行代码放在那里呢?有两种方式:1. 创建Thread对象时,复写它的run方法,把执行代码放在run方法里.2. 创建Thread对象时,给它传递一个Runnable对象,把执行代码放在Runnable对象的run方法里. 如果多线程操作的是不同资源,线程之间不会相互影响,不…