- 浏览: 27447 次
- 性别:
- 来自: 广州
最新评论
文章列表
总所周知,SVM是通过解决一个二次规划问题得到一个全局最优解,这就导致了在实际应用中常常需要耗费大量的内存和时间。现有的大多数方法是通过减少训练样本来减少支持向量,从而加快训练速度。这篇文章来自李青等的论文《基于向量投影的支持向量机预选取》。
基本思想是,m1和m2分别是1类样本,2类样本的中心点,xf(0)为样本1的一个样本,xf为xf(0)投影到m1m2的点。分类样本的中心点很好求,把已知样本1的所有点相加除以个数就行了。
定义: ,xi(0)是样本1的其中一个样本,看上面的图r1表示m1xf中长度最长的,注意这里是有方向的。
下面定义边界向量:
d是m1m2 ...
- 2012-07-22 10:16
- 浏览 435
- 评论(0)
PAC人脸识别的基本思想就是从人脸图像中找出最能代表人脸的特征空间,去除一些不能代表人脸特征的属性。一个单个的人脸图片映射到这个特征空间得到这个特征空间的一组系数,这组系数就表示这张人脸图片的特征脸特征。 ...
- 2012-07-20 12:25
- 浏览 1374
- 评论(0)
Tomcat源码分析(十)--部署器
- 博客分类:
- tomcat
我们知道,在Tomcat的世界里,一个Host容器代表一个虚机器资源,Context容器代表一个应用,所谓的部署器就是能够把Context容器添加进Host容器中去的一个组件。显然,一个Host容器应该拥有一个部署器组件。简单的部署代码应该是下面这样的:
Context context = new StandardContext();
Host host = new StandardHost();
host.addChild(context);
别看这简单,其实这就是核心的部署代码。当然,Tomcat的部署器绝不是这么点东西,但其实也是比较简单的东西。在Catalina的cr ...
在明白Tomcat的Session机制之前,先要了解Session,Cookie,JSESSIONID这几个概念。JSESSIONID是一个唯一标识号,用来标识服务器端的Session,也用来标识客户端的Cookie,客户端和服务器端通过这个JSESSIONID来一一对应。这里需要说明的是C ...
在明白Tomcat的Session机制之前,先要了解Session,Cookie,JSESSIONID这几个概念。JSESSIONID是一个唯一标识号,用来标识服务器端的Session,也用来标识客户端的Cookie,客户端和服务器端通过这个JSESSIONID来一一对应。这里需要说明的 ...
- 2012-07-11 15:16
- 浏览 460
- 评论(0)
Tomcat源码分析(八)--载入器
- 博客分类:
- tomcat
在讲Tomcat的载入器之前,先要了解一下java的类加载机制,这里就不具体说了,仅仅写一点我认为比较重要的东西:
1:一般实现自己的类加载器是重写ClassLoader的findClass方法,然后在这个方法里面读取class文件为byte[]数组,传入defineClass方法,defineClass方法返回我们加载的类。这样便实现了我们自己的简单的类加载器。下面是一个简单的自定义类加载器的findClass方法:
protected Class<?> findClass(String name) throws ClassNotFoundException { ...
在前面的大部分文章都是讲连接器和容器的,以后的内容会偏向写一些Tomcat的其他组件以及一些细节的东西。
Tomcat有很多组件,要一个一个启动组件难免有点麻烦。由于Tomcat的包含关系是Catalina->Server->Service->容器/连接器/日志器等,于是可通过父组件负责启动/关闭它的子组件,这样只要启动Catalina,其他的都自动启动了。这种单一启动和关闭的机制是通过实现Lifecycle接口来实现的。下面是Lifecycle接口的定义:
public interface Lifecycle {
public static final ...
日志记录器挺简单的,没有很多东西,最主要的就是一个Logger接口:
public interface Logger {
public static final int FATAL = Integer.MIN_VALUE;
public static final int ERROR = 1;
public static final int WARNING = 2;
public static final int INFORMATION = 3;
public static final int DEBUG = 4;
pub ...
本文所要解决的问题:一个http请求过来,容器是怎么知道选择哪个具体servlet?
我们知道,一个Context容器表示一个web应用,一个Wrapper容器表示一个servlet,所以上面的问题可以转换为怎么由Context容器选择servlet,答案是映射器。映射器是实现了Mapper接口的类,作用就是根据请求连接(主要是协议和路径)来选择下一个容器,可以看做是一个哈希表,根据关键字段来选择具体的值,Mapper接口的定义为:
public interface Mapper {
public Container getContainer();//返回与该映射器相关 ...
目标:在这篇文章希望搞明白connector.getContainer().invoke(request,response);调用容器的invoke后是怎么传递到
servlet或者jsp的?
由上篇文章Tomcat源码分析(三)--连接器是如何与容器关联的?可知,connector.getContainer()得到的容器应该是StandardEngine(其实应该是由server.xml文件配置得到的,这里先假定是StandardEngine),StandardEngine没有invoke方法,它继承与ContainerBase(事实上所有的容器都继承于ContainerBase,在 ...
这篇文章要弄懂一个问题,我们知道,一个链接器是跟一个容器关联的,容器跟链接器是在什么时候关联上的?
在明白这个问题前要先了解一下Digester库,这个库简单的说就是解析xml文件,这里有两个概念:模式和规则,所谓模式就是一个xml的标签,规则就是遇到一个xml标签需要做什么,看一下他主要的三个方法:
1:addObjectCreate(String pattern, String className, String attributeName) 根据模式pattern实例化一个对象className
2:addSetProperties(String pattern ...
Tomcat源码分析(二)--连接处理
- 博客分类:
- tomcat
目标:在这篇文章希望搞明白http请求到tomcat后是怎么由连接器转交到容器的?
在上一节里已经启动了一个HttpConnector线程,并且也启动了固定数量的HttpProcessor线程。HttpConnector用来等待http连接,得到http连接后交给其中的一个HttpProcessor线程来处理。接下里具体看一下HttpConnector是怎么得到连接得,以及HttpProcessor是怎么处理的。当启动了HttpConnector线程后(在上一节已经知道怎么启动了),便在它的run方法里面循环等待:
public void run() {
...
Tomcat源码分析(一)--服务启动
- 博客分类:
- tomcat
对Tomcat感兴趣是由于《深入理解Tomcat》这本书,之前仅仅是使用到了Tomcat,这本书却让我对Tomcat的实现理解的更加透彻了,在这里希望记录一些自己对Tomcat的理解。由于这本书是基于tomcat4的,所以我的文章也是基于tomcat4的 ...
前端的东西不是主要学习的对象,但是难免在各种地方用到,这里记录一些平常卡住自己的东西:
(1):两个select下拉框级联的实现
function changeSelect(){
var aSelect = document.getElementById("aSelect");
var aNo = aSelect.options[aSelect.selectedIndex].value;
var bSelect = document.getElementById("bSelect");
......
//通过 ...
- 2012-06-19 11:33
- 浏览 419
- 评论(0)
(1):String的本质就是一个char[]。String源码是用char[]来存储这个字符串的。
(2):jsp的解析过程是先被转换为servlet。
(3):Tcp是应用层协议,Http是网络层协议,Socket本身并不是协议,可以理解为对tcp/ip协议的封装,是封装好了的对程序员的编程接口。
(4):都知道数据库连接耗时? 可是耗时在哪里? 连接的过程做了一些什么操作?这个问题思考了很久了,一直不知道,我猜想的一些操作:检验用户信息,要打开硬盘文件,创 建内存缓存等,这些操作加起来应该会比较耗时,网上有人说会进行协议交换? 不太了解~
(5):java的打开文件和流之内的东西为 ...
- 2012-06-15 16:34
- 浏览 418
- 评论(0)