1. ThreadLocal的理解 ThreadLocal,顾名思义,就是线程的本地变量,ThreadLocal会为每个线程创建一个本地变量副本,使得使用ThreadLocal管理的变量在多线程的环境下,每个线程都是访问的是自己内部的副本变量,将全局变量局部化,跟局部变量一样的使用,从而避免了一些线程安全的问题.比如在数据库连接池中获取的连接时,此时的连接对于每个线程来说,都应该是独立的,所以可以使用ThreadLocal来管理该线程的连接.从而避免在多线程环境下的连接的安全问题. 2. Thr…
Java split方法源码分析 public String[] split(CharSequence input [, int limit]) { int index = 0; // 指针 boolean matchLimited = limit > 0; // 是否限制匹配个数 ArrayList<String> matchList = new ArrayList<String>(); // 匹配结果队列 Matcher m = matcher(input); // 待切…
invalidate方法源码分析 在之前分析View的绘制流程中,最后都有调用一个叫invalidate的方法,这个方法是啥玩意?我们来看一下View类中invalidate系列方法的源码(ViewGroup没有重写这些方法),如下: /**  * Mark the area defined by dirty as needing to be drawn. dirty代表需要重新绘制的脏的区域  * , 0, mRight - mLeft, mBottom - mTop, invalidateC…
Linq分组操作之GroupBy,GroupJoin扩展方法源码分析 一. GroupBy 解释: 根据指定的键选择器函数对序列中的元素进行分组,并且从每个组及其键中创建结果值. 查询表达式: var list = new List<object>() { 20, 30, 24 };查询表达式: var query = from n in list group n by n into grp select new { MyKey = grp.Key, MyValue = grp.Count()…
该篇博客的有些内容和在之前介绍过了,在这里再次涉及到的就不详细说了,如果有不理解请看[Java]NIO中Channel的注册源码分析, [Java]NIO中Selector的创建源码分析 Selector的创建在Windows下默认生成WindowsSelectorImpl对象,那么Selector的select方法使用的就是WindowsSelectorImpl的select方法,而在WindowsSelectorImpl下并没有覆盖这个方法,而是由其基类SelectorImpl实现的: pu…
本篇从HashMap的put.get.remove方法入手,分析源码流程 (不涉及红黑树的具体算法) jkd1.8中HashMap的结构为数组.链表.红黑树的形式     (未转化红黑树时)   (转化为红黑树时的情况) 一.关于HashMap需要了解的静态常量 DEFAULT_INITIAL_CAPACITY 数组默认初始容量 16 DEFAULT_LOAD_FACTOR 默认负载因子 0.75 MIN_TREEIFY_CAPACITY 最小树容量 64 在下面的方法探究中将会提到这些静态常量…
传统的判断dom加载的方法 使用 dom0级 onload事件来进行触发所有浏览器都支持在最初是很流行的写法 我们都熟悉这种写法: window.onload=function(){ ... }  但是onload事件触发过于缓慢,尤其是在存在很多外部图片或者视频文件的时候,为了更好的了解这一点有必要知道一个html文档是如何进行加载的,这里引用一个园友的表述: 1.用户输入网址(假设是个html页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回html文件: 2.浏览器开始载入htm…
这两个方法用的是相同的代码,一个用于给jQuery对象或者普通对象合并属性和方法一个是针对jQuery对象的实例,对于基本用法举几个例子: html代码如下: <!doctype html> <html> <head> <title></title> <script src='jquery-1.7.1.js'></script> </head> <body> <img src=''/>…
在jQuery 1.7.1中调用jQuery.clean()方法的地方有三处,第一次就是在我之前的随笔分析jQuery.buildFramgment()方法里面的,其实还是构造函数的一部分,在处理诸如$('<div>123</div>')形式的参数时会首选调用jQuery.buildFramgment()创建文档片段,而这个方法有依赖jQuery.clean()方法来实现dom转换,所以这个方法的第一个用处就是在构造jQuery对象上面.另外两处则是在两个dom操作方法before…
一.应用篇 ThreadLocal介绍 ThreadLocal如果单纯从字面上理解的话好像是“本地线程”的意思,其实并不是这个意思,只是这个名字起的太容易让人误解了,它的真正的意思是线程本地变量. 实现一个线程本地的存储,也就是说,每个线程都有自己的局部变量.所有线程都共享一个ThreadLocal对象,但是每个线程在访问这些变量的时候能得到不同的值,每个线程可以更改这些变量并且不会影响其他的线程,并且支持null值. ThreadLocal理解 我们先看下属性动画为每个线程设置Animatio…