摘要:本文是Tomcat源代码阅读系列的第二篇文章,我们在本系列的第一篇文章:在IntelliJ IDEA 和 Eclipse运行tomcat 7源代码一文中介绍了如何在intelliJ IDEA 和 Eclipse中运行Tomcat源代码,本文介绍一下Tomcat的总体结构。本文没有特别指明的地方,源代... 阅读全文
Request、Servlet及其子接口
2014-05-03 02:28 by Loull, 788 阅读, 0 推荐, 收藏, 编辑
摘要:最近看tomcat源码,这类接口多的有点眩,整理出来看一下。(基于tomcat4)javax.servlet.ServletRequset接口,和org.apache.catalina.Request接口,有什么联系?其实就是对Request不同层面上的定义。一、首先看下javax.servlet.... 阅读全文
java监听器
2014-05-01 21:40 by Loull, 1074 阅读, 0 推荐, 收藏, 编辑
摘要:一、先看看jdk提供的event包:public interface EventListener:所有事件侦听器接口必须扩展的标记接口。package java.util;/** * A tagging interface that all event listener interfaces mus... 阅读全文
Tomcat学习 HttpConnector和HttpProcessor启动流程和线程交互
2014-04-29 01:51 by Loull, 1819 阅读, 0 推荐, 收藏, 编辑
摘要:一、tomat启动流程1、启动HttpConnector connector等待连接请求,只负责接受socket请求,具体处理过程交给HttpProcessor处理。 tomcat用户只能访问到connector,能设置接受的数据的buffer大小,而不能看见HttpProcessor的处理过程... 阅读全文
ObjectMonitor,ObjectWaiter 实现wait(),notify()
2014-04-25 15:14 by Loull, 3603 阅读, 1 推荐, 收藏, 编辑
摘要:0、java对象锁监视器在JVM的规范中,有这么一些话:“在JVM中,每个对象和类在逻辑上都是和一个监视器相关联的”“为了实现监视器的排他性监视能力,JVM为每一个对象和类都关联一个锁”“锁住了一个对象,就是获得对象相关联的监视器”监视器好比一做建筑,它有一个很特别的房间,房间里有一些数据,而且在同... 阅读全文
递归
2014-04-25 10:03 by Loull, 367 阅读, 0 推荐, 收藏, 编辑
摘要:一、递归关键之处1、停止条件即如果问题很简单,已经是个不能再分解的任务了,那么就不要用递归来解决。比如这里的number只有一位时。这种没有任何递归调用的情况即是停止条件或基本条件。2、递归调用递归调用自身,用于解决比较简单的问题,在这里即输出除最后一位之外的所有位。二、示例案例1两个人从1开始,轮... 阅读全文
Java线程同步和线程通信
2014-04-24 23:58 by Loull, 1546 阅读, 0 推荐, 收藏, 编辑
摘要:一、线程同步 当多个线程访问同一个数据时,非常容易出现线程安全问题。这时候就需要用线程同步。 不可变类总是线程安全的,因为它的对象状态是不可改变的,但可变类对象需要额外的方法来保证线程安全。1、同步监视器 释放同步监视器的锁定 任何线程进入同步代码块、同步方法之前,... 阅读全文
Java Thread线程控制
2014-04-24 23:40 by Loull, 1235 阅读, 0 推荐, 收藏, 编辑
摘要:一、线程和进程 进程是处于运行中的程序,具有一定的独立能力,进程是系统进行资源分配和调度的一个独立单位。进程特征: A、独立性:进程是系统中独立存在的实体,可以拥有自己独立的资源,每个进程都拥有自己的私有地址地址。在没有经过进程本身允许的情况下,一个用户进程不可以访问其他进程地址空间。 ... 阅读全文
线程同步:互斥锁,条件变量,信号量
2014-04-24 23:28 by Loull, 7959 阅读, 1 推荐, 收藏, 编辑
摘要:线程同步为允许在线程或进程间共享数据,同步通常是必须的。常见的同步方式有:互斥锁、条件变量、读写锁、信号量。另外,对于进程间的同步,也可以通过进程间通信的方式进行同步,包括管道(无名管道、有名管道)、信号量、消息队列、共享内存、远程过程调用,当然也可以通过Socket来进行网络控制。一. 互斥锁和条... 阅读全文
设计推荐系统
2014-04-24 15:19 by Loull, 511 阅读, 0 推荐, 收藏, 编辑
摘要:推荐系统评测的三个步骤一般来说,一个新的推荐算法最终上线,需要完成离线实验,用户调查和在线实验三个步骤。首先需要通过俩西安实验证明它在很多离线指标上优于现有算法。然后,需要通过用户调查确定它的用户满意度不低于现有算法。最后,通过在线的AB测试确定他在我们关心的指标上优于现有算法。一、离线实验离线实验... 阅读全文
寻找第K大的数
2014-04-23 16:17 by Loull, 308 阅读, 0 推荐, 收藏, 编辑
摘要:在一堆数据中查找到第k个大的值。 名称是:设计一组N个数,确定其中第k个最大值,这是一个选择问题,解决这个问题的方法很多。 所谓“第(前)k大数问题”指的是在长度为n(n>=k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题。 解法1: 我们可以对这个乱序数组按照从大到小先行排序,然后取... 阅读全文
算法思想
2014-04-23 13:53 by Loull, 547 阅读, 1 推荐, 收藏, 编辑
摘要:1、递归法所谓递归,就是指如果需要求解当前状态就需要求解其依赖的迁移状态。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。采用递归描述的算法通常有这样的特征:1)为求解规模为N的问题,设法将它分解成规模较小的问题;2)然后从这些小问题的... 阅读全文
LIS 最长递增子序列
2014-04-22 00:12 by Loull, 362 阅读, 0 推荐, 收藏, 编辑
摘要:一、最长公共子序列 经典的动态规划问题,大概的陈述如下: 给定两个序列a1,a2,a3,a4,a5,a6......和b1,b2,b3,b4,b5,b6.......,要求这样的序列使得c同时是这两个序列中的部分(不要求连续),这个就叫做公共子序列,然后最长公共子序列自然就是所有的子序列中最长的... 阅读全文
LeetCode Median of Two Sorted Arrays
2014-04-21 21:56 by Loull, 389 阅读, 0 推荐, 收藏, 编辑
摘要:Median of Two Sorted ArraysThere are two sorted arrays A and B of size m and n respectively. Find the median of the two sorted arrays. The overall run... 阅读全文
LeetCode TwoSum
2014-04-21 15:56 by Loull, 193 阅读, 0 推荐, 收藏, 编辑
摘要:TwoSumGiven an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the ... 阅读全文