前言 总的结论就是:不推荐使用JDK自带的观察者API,而是自定义实现,但是可以借鉴其好的思想. java.util.Observer 接口源码分析 该接口十分简单,是各个观察者需要实现的接口 package java.util; public interface Observer { void update(Observable o, Object arg); }  借鉴 JDK 封装方法的过多参数的方案 也十分直接,就是使用顶级父类 Object 做参数类型,然后自己可以定义一个参数封装的类…
1.startsWith(String prefix, int toffset)方法 包括startsWith(*),endsWith(*)方法,都是调用上述一个方法 public boolean startsWith(String prefix, int toffset) { char ta[] = value; int to = toffset; char pa[] = prefix.value; int po = 0; int pc = prefix.value.length; // No…
admin后台注册model  一.原生djangoCBV请求生命周期源码分析 原生view的源码路径(django/views/generic/base.py) 1.从urls.py中as_view()入手,进入as_view()的源码,前台传递的数据都进入as_view()函数 2.进入as_view()中view()函数接收前台传递过来的参数处理,dispath()把返回值分发下去,进入dispatch源码 3.dispatch源码分析,最后的返回值handler是对象.请求方式 disp…
前言 我们之前分析了Hash的源码,主要是 put 方法.同时,我们知道,HashMap 在并发的时候是不安全的,为什么呢?因为当多个线程对 Map 进行扩容会导致链表成环.不单单是这个问题,当多个线程相同一个槽中插入数据,也是不安全的.而在这之后,我们学习了并发编程,而并发编程中有一个重要的东西,就是JDK 自带的并发容器,提供了线程安全的特性且比同步容器性能好出很多.一个典型的代表就是 ConcurrentHashMap,对,又是 HashMap ,但是这个 Map 是线程安全的,那么同样的…
在JAVA的JDK中Collections类提供了shuffle方法用来对给定的集合参数进行乱序重排,之前面试也被问到过类似的问题,看了一下JDK的源码实现做个记录 1. 方法签名: Collections.shuffle方法提供了两个重载的形式分别为: 1. public static void shuffle(List<?> list) 2. public static void shuffle(List<?> list, Random rnd) 在实现上,第一个方法中new了…
这里分析MapReduce原理并没用WordCount,目前没用过hadoop也没接触过大数据,感觉,只是感觉,在项目中,如果真的用到了MapReduce那待排序的肯定会更加实用. 先贴上源码 package examples; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Da…
这几天老感觉不对, 总觉得少点什么, 今天才发现, 前面 3 里面, 在获取Action参数信息的时候,  少解析了. 里面还有一个比较重要的东西. 今天看也是一样的. 在 InvokeAction() 方法里面, 有一句代码: IDictionary<string, object> parameterValues = this.GetParameterValues(controllerContext, actionDescriptor); 这个是用来获取参数的. 那么参数是不是随便获取呢?…
目录 任务一:自定义持久层框架 1.1 JDBC回顾及问题分析 1.2 自定义持久层框架思路分析 1.3 IPersistence_Test编写 1.3.1 XXXMapper.xml详解 1.3.2 sqlMapConfig.xml详解 1.4 Resources类定义 1.5 容器对象定义 1.6 解析核心配置文件sqlMapConfig 1.7 解析映射配置文件mapper.xml 1.8 会话对象sqlSession类定义 1.9 会话对象sqlSession方法定义 1.10 查询对象…
以下笔记是我看完视频之后总结整理的,部分较为基础的知识点也做了补充,如有问题欢迎沟通. 目录 任务一:自定义持久层框架 1.1 JDBC回顾及问题分析 1.2 自定义持久层框架思路分析 1.3 IPersistence_Test编写 1.3.1 XXXMapper.xml详解 1.3.2 sqlMapConfig.xml详解 1.4 Resources类定义 1.5 容器对象定义 1.6 解析核心配置文件sqlMapConfig 1.7 解析映射配置文件mapper.xml 1.8 会话对象sq…
转载请注明出处:http://blog.csdn.net/crazy1235/article/details/75579654 构造函数 Node hash put treeifyBin get resize 参考 与JDK1.7中HashMap的实现相比,JDK1.8做了如下改动: hash()函数算法修改 table数组的类型,由Entry改成了Node HashMap存储数据的结构由数组+链表,进化成了 数组+链表+(RBT)红黑树 即使加载因子和Hash算法设计的再合理,也免不了出现拉链…