本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
Tomcat7启动分析(四)各组件init、start方法调用
在正常启动Tomcat7的情况下,上篇文章分析到了执行org.apache.catalina.core.StandardServer的init和start方法这儿,那么就来看看这两个方法里面到底干了些什么。
但是在StandardServer类里面并没有发现这两个方法:
由此推知这两方法必定是在该类的父类中已实现了,在StandardServer类的父类LifecycleMBeanBase类 ...
百度站长工具 加广告 代码分析
最近做的网站上突然出现了广告。本以为是boss故意加上去的,但是问了一下,发现boss不知情。所以得找找。
首先查看了下最新应用的js库,是由我来引的,同事们看了看,没有问题。因为就几十行的库。那只有两中可能,一个是xxx,一个是baidu,因为我们只用他们。原本以为是xxx。但是经过一番查看源码以后,发现原来是baidu在作怪。下面揭晓:
先来看两张图片,这是去百度站长工具上看到的广告:
...
Tomcat7启动分析(三)Digester的使用
前一篇文章里最后看到Bootstrap的main方法最后会调用org.apache.catalina.startup.Catalina对象的load和start两个方法,那么就来看看这两个方法里面到底做了些什么。
load方法:
/**
* Start a new server instance.
*/
public void load() { ...
Tomcat7启动分析(二)Bootstrap类中的main方法
之前分析了Tomcat的启动脚本,如果从startup.bat开始启动Tomcat的话会发现最后会调用org.apache.catalina.startup.Bootstrap里的main方法,并且传过来的最后一个命令行参数是start,接下来的启动代码分析就从这里开始。
先看下这个main方法的代码:
/**
* Main method and entry point w ...
Tomcat7启动分析(一)启动脚本
在之前的环境搭建那篇文章里是通过直接运行BootStarp的main函数来启动的,只是加了一个catalina.home的系统属性。而正常情况下启动Tomcat是通过运行脚本的方式,这个就涉及到建立工程时拷贝过来的script目录下的一堆脚本文件了。
以我的windows系统举例,实际上最终是执行startup.bat这个批处理文件来启动tomcat的。
那么启动分析就冲这个文件开始吧:
...
透过源码学前端 之 Backbone 二
透过源码学前端 之 Backbone 二 -- 江潇
第二部分 Events - 首先讨论下 【 Observable -- 观察者模式 】
Events 是Backbone 框架的基础,个人认为其也是代码思维最精秒部分,
先做一个简单的demo,作为后面使用范例
var Person = function(){};
for( var key in Events ...
透过源码学前端 之 Backbone 一
透过源码学前端 之 Backbone -- 江潇
赘言:
机缘之下,11年4月从设计转型专职做前端,经过半年的摸索、迷惑 和 知识储备,11年12月 开始通过学习框架的源码来学习js。
最初学习的是ext 3.4.0,公司前端组主要是对ext进行二次封装的组件开发。最初因起点太低而步履维艰,其中ext_base里的代码了写四遍才对其作用,有了初步的了解。
Observable部 ...
源码剖析之CopyOnWriteArrayList
CopyOnWriteArrayList:jdk1.5新增的线程安全的ArrayList实现。
使用场景:读取频繁,写较少。
理由:底层的安全性 本质上是依赖于线程读取的数据副本来实现的。因此每次写都是要复制底层数组数据的,如果写频繁势必会造成大量的性能消耗。
如果写非常频繁,那么可以根据实际情况选择:vector 或者Collections.synchronizedList获取同步保证。
1、底 ...
java的DirectBuffer源码分析(主要是DirectBuffer的资源分配和回收)
可以看到淘宝的一个说明:http://www.tbdata.org/archives/801
Java 2 SE 6 doc :
Given a direct byte buffer, the Java virtual machine will make a best effort to perform native I/O operations directly upon it. That i ...
庖丁分词的源码分析 (6) 我自己对庖丁分词的修改应用
1 我要满足一个需求,只返回在字典中的词。对于不在字典中的:庖丁默认的实现是两个字一分。我现在的这个需求相当于是覆盖这个对应的方法,让他不返回即可。我的实现就是覆盖了
CJKKnife的dissectIsolated方法,改成不做任何事情:
protected void dissectIsolated(Collector collector, Beef beef, int offset,
...
庖丁分词的源码分析 (5) 最多分词和最长分词
在字典相同的情况下,CJKKnife得到的分词结果都是一样的,都会交给collector去处理。得到的结果就是个LinkedList,不断的next得到全部的结果。collector有MaxWordLengthTokenCollector和MostWordsTokenCollector。
MaxWordLengthTokenCollector是最长分词,意思就是说一个长的分词结果包含一个小的,那么 ...
庖丁分词的源码分析 (4) 分词过程
庖丁分词的主要分词实现是CJKKnife,主要的方法是dissect方法。但是这个方法300多行,我不想全部贴出来。我选一些重点说说。dissect首先会用到assignable方法,其实就是找到要分词的对象,这里主要是中文。遇到不是中文的就强行截断了,后面的再继续开始。
/**
* 分解以CJK字符开始的,后可带阿拉伯数字、英文字母、横线、下划线的字符组成的语句
*/
pu ...
Hadoop心跳机制源码分析
Hadoop心跳机制源码分析
前言:
这些天遇到了一些感情方面的问题,着实比较痛苦。不过最终在亲人、朋友的开导下,我已度过了最艰难的那段时期。在这里我要谢谢我的爸爸,是你一直相信着我,支持着我,虽然我一年在家只能呆上一两个月,可我却一直能够感受到家的温暖;我要感谢马总,是你用 ...