自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

【算法与数据结构】金刚坐飞机问题

文章背景编程之美 4.1 “金刚坐飞机问题”的问题2,难度比问题1大很多。编程之美的官方解法,包括原理分析、概率公式、推导过程等,感觉阐述不够详细,没有完全读懂。搜索一下 “金刚坐飞机”,参考了几个很不错的分析,得到一个自己觉得比较完整的答案。 仔细审题 首先,仔细审题,有两个细节需要搞清楚: 飞机上总共有多少座位?N?N+1?还是更多?从问题1的官方解答...

2013-02-15 14:29:10 307

Linux随机数发生器导致Apache进程全部Block的问题追查

今天上午,运营同事报告一个严重故障,现象是网站页面速度非常慢,基本不可用。工程师开始追查问题。首先介绍一下系统架构:前端 Apache,中间PHP,后端MySQL,经典的LAMP架构。 猜测数据库出现性能问题 第一反应,怀疑数据库数据量太大。我们一直定期清理数据库,保证单表数据量在一定范围内。而这段时间一直没有清理,数据量可能过大。立刻执行delete语句,单表减少100W条记...

2012-12-02 21:03:08 380

原创 如何控制War包访问Tomcat的内部实现类

Tomcat默认部署了Manager应用作为Web控制台,提供对Tomcat的管理功能。具体功能包括但不限于:列出已部署的WebApp部署、卸载、启动、停止指定的WebApp展现线程池的详情,例如活动线程数、最大线程数、最小线程数等展现请求处理的统计信息,例如平均请求处理时间、请求次数、出错次数等...从这些功能看,Manager能够获知Tomcat内部信息,并对T...

2010-12-14 21:56:09 275

异常与构造函数、析构函数

写Java代码的时候,遇到错误总是喜欢抛出异常,简单实用。最近开始写C++代码,发现异常没那么简单,使用须谨慎。 翻阅了《Effective C++》 《More Effective C++》《Inside The C++ Object Model》的相关章节,大概弄明白了一些东东,总结在本文。 本文不是总结普适的C++异常机制,还没有这个内力哈! 主要是结合构造函数和析构函数,来...

2010-11-15 14:06:11 175

前置++和后置++的区别

这篇文章不是讨论(i++)+(i++)+(i++)的计算结果,更不是讨论(i++)+(++i)+(i++)。 在C++教程中,我们都会学到:i++和++i是两个表达式,他们都会对i进行自增,但是呢,作为表达式,i++的值是自增之前的值,++i的值是自增之后的值。 本文在此基础上,进行一些稍微深入的讨论。 从操作符重载的角度,看i++和++i的区别,是一个比较好的切入点。...

2010-09-03 13:58:23 1805 1

为什么需要auto_ptr_ref

这几天开始拜读侯捷先生和孟岩先生的译作《C++标准程序库:自修教程与参考手册》 。两位先生确实译功上乘,读得很顺。但是读到P55页关于auto_ptr_ref的讨论,却百思不得其解:为什么需要引入auto_ptr_ref这个辅助类呢?  从书中描述来看,仿佛与拷贝构造函数 、右值 、类型转换 有关。于是,结合auto_ptr的源代码,google之、baidu之,找了一推资料,终于...

2010-08-24 15:46:37 129

原创 [How Tomcat Works]第4章 Tomcat默认连接器

译者 jarfield 博客 http://jarfield.iteye.com概述HTTP 1.1新特性持久化连接(Persistent Connections)Chunked编码(Chunked Encoding)100(Continue)状态码的使用Connect...

2010-06-29 20:17:20 153

[How Tomcat Works]第3章 连接器(二)

译者 jarfield 博客 http://jarfield.iteye.com概述StringManager类应用程序启动应用连接器创建HttpRequest对象读取套接字的输入流解析请求行解析Headers解析Cookie...

2010-04-10 22:50:22 157

[How Tomcat Works]第3章 连接器(一)

译者 jarfield 博客 http://jarfield.iteye.com概述StringManager类应用程序启动应用连接器创建HttpRequest对象读取套接字的输入流解析请求行解析Headers解析Cookies...

2010-04-10 21:55:18 135

Tomcat 5.5.26源代码分析——启动过程(二)

init方法Catalina_Home和Catalina_Base初始化类加载器体系Tomcat的类加载器体系initClassLoaders的代码一个疑问Catalina对象load方法Catalina类的命令行参数加载过程start方法await...

2010-03-25 14:38:17 175

Tomcat 5.5.26源代码分析——启动过程(一)

main方法第一阶段第二阶段第三阶段启动参数的区别一个Bugconfigtest启动参数一般,我们直接运行startup.sh来启动Tomcat。最终执行的命令是:java [options] org.apache.catalina.startup.Bootstrap start options...

2010-03-25 14:30:32 191

[How Tomcat Works]第2章 一个简单的Servlet容器

译者 jarfield博客 http://jarfield.iteye.com概述javax.servlet.Servlet接口第一个应用HttpServer1类Request类Response类StaticResourceProcessor类ServletP...

2010-03-14 00:43:50 123

[How Tomcat Works]第1章 一个简单的Web服务器

译者 jarfield博客 http://jarfield.javaeye.com     超文本传输协议(HTTP)HTTP请求HTTP响应Socket类ServerSocket类应用程序HttpServer类Request类...

2010-03-02 23:09:00 147

Tomcat 5.5.26的网络构建指南

1. 安装JDK不能安装JDK 1.6.x,否则Tomcat 5.5.26依赖的commons-dbcp-1.2.2-src无法编译,原因是:JavaSE 6.0升级了java.sql包中的某些接口,为它们增加了一些方法。commons-dbcp-1.2.2-src中包含了上述接口的实现类,这些类当然没有实现新加的方法。最好...

2010-02-27 00:44:00 144

[How Tomcat Works]第0章 介绍

译者 jarfield博客 http://jarfield.iteye.com概述本书为谁准备Servlet容器如何工作Catalina的框图Tomcat 4和5每章的概述每章的应用程序准备必要的软件概述    欢迎来到Tomcat...

2010-02-24 19:09:00 134

略谈HttpClient和Tomcat的中文编码问题

这几天都在纠结Java Web开发中的中文编码问题。其实,很多Java Web开发者都被中文编码“折磨”过,网络上有大量的讨论。以前我也读过这方面的博文,读完后感觉似乎懂了,好像知道了编码问题的原因和解决方法。但是, 一旦投入到实际开发中,发现自己其实没懂,囧! 连续纠结了几天,总算对前因后果有个清晰地认识,故“略谈”一下。之所以略谈,是因为我并非(也没有能力)完整地阐述Java Web...

2010-02-06 17:41:00 206

优化变成了忧患:String.split引发的“内存泄露”

    一直赞叹Sun对待技术的严谨和优雅(bless Sun)。Sun JDK中Java库的源代码,连注释都清清楚楚、规规范范,javadoc注解的使用也一丝不苟,读起来很熟舒服。因此,在日常工作和学习中,经常读读Java库的源代码,不亦乐乎?如果遇到诡异问题,源代码的帮助就更大了。     闲话少说,回归正题。这几天,一直在为Java的“内存泄露”问题纠结。Java应用程序占用的内存在...

2010-01-30 10:56:00 341

Eclipse远程调试Tomcat

最近,一直在研究Tomcat的工作内幕,主要的方法就是参考《How Tomcat Works》这本书和Tomcat 5.5.26的源代码。 Tomcat的代码结构还是比较清晰的,注释也比较全。但是代码毕竟是静态的,难以彻底弄清类与类之间的协作关系,以及运行时对象的交互关系。 如果能对Tomcat的启动、处理请求和停止的过程进行断点调试,看清Tomcat的每一步行踪,那么就能...

2010-01-24 20:24:40 270

欲知Tomcat, 推荐一本书。

最近由于公司项目的需求,我终有机会再次亲近Java,同时也接触到了Tomcat。以前在大学期间也简单接触过Servlet和Tomcat,后来深入了解了EJB和JBoss。当时对JBoss的部分源代码进行了阅读,深刻领悟到Java在企业级中间件中的强大战斗力;自定义类加载器、反射机制、Annotation、JMX等高级语法和特性的应用,让我惊叹不已。公司的Java项目已经结束了,但是...

2010-01-07 22:00:00 206

原创 为什么如此获取Java数组的长度

记得vamcily 曾问我:“为什么获取数组的长度用.length(成员变量的形式),而获取String的长度用.length()(成员方法的形式)?” 我当时一听,觉得问得很有道理。做同样一件事情,为什么采用两种风格迥异的风格呢?况且,Java中的数组其实是完备(full-fledged)的对象,直接暴露成员变量,可能不是一种很OO的风格。那么,设计Java的那帮天才为什么这么做呢?...

2010-01-07 14:06:52 2635

Memcached FAQ(4) 选项、Item过期和命名空间方面的问题

最后更新时间 2009-04-10 更新人 dormando@rydia.net这里收集了经常被问到的关于memcached的问题memcached的选项Item的过期 过期的item什么时候才会从cached中删除命名空间 使用key的"前缀"来模拟命名空间根据命名空间来删除memcached...

2009-07-13 20:34:00 88

Memcached FAQ(3) 性能和客户端库方面的问题

最后更新时间 2009-04-10 更新人 dormando@rydia.net这里收集了经常被问到的关于memcached的问题性能方面的问题 memcached没有我的database快,为什么? 客户端库方面的问题 memcached有哪些客户端库? 使用不同的客户端库,能够访问到memcached中相同的数据吗? (不同客户端库的可以协作吗?)...

2009-07-12 12:44:00 85

Memcached FAQ(2) 集群架构方面的问题

最后更新时间 2009-04-10 更新人 dormando@rydia.net这里收集了经常被问到的关于memcached的问题集群架构方面的问题 memcached是怎么工作的? memcached最大的优势是什么? memcached和MySQL的query cache相比,有什么优缺点? memcached和服务器的local cache(比如PHP的AP...

2009-07-09 21:53:00 96

Memcached FAQ(1) 一般性的问题

最后更新时间 2009-04-10 更新人 dormando@rydia.net这里收集了经常被问到的关于memcached的问题一般的问题 什么是memcached? 从哪获得memcached? 怎么安装memcached? 哪些平台可以运行memcached? 什么情况下适合使用memcached? 什么情况下适合使用memcached? ...

2009-07-05 13:49:00 161

计算二进制数中1的个数的快速算法

以n=10101010为例。首先将其减1,得到10101001;然后用10101010&10101001,得到10101000。这个过程,我们可以看出,n末尾的1被去掉了。即每作一次n = n&(n-1),n的末尾就少一个1。如此反复,知道n=0位置。示例代码如下:int count(int n){ int c = 0; for(;n;n=n&(n-1)) count++; ret...

2008-03-31 23:06:00 242

typedef的四个用途和两个陷阱

用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char*pa,pb;//这多数不符合我们的意图,它只声明了一个指向字符变量的指针, //和一个字符变量; 以下则可行: typedefchar*PCHAR;//一般用大写 PCHARpa,pb;//可行,同时声明了两个指向字符变量的指针 虽然: char*pa,*pb; 也可行,但相对...

2008-03-12 23:16:00 81

关于typedef的用法

一.基本概念剖析 int* (*a[5])(int, char*); //#1void (*b[10]) (void (*)()); //#2double(*)() (*pa)[9]; //#3  1.C语言中函数声明和数组声明。函数声明一般是这样: int fun(int, double); 对应函数指针(pointer t...

2008-03-12 22:21:00 82

linux文件系统中一些重要概念的分析

文件控制块(FCB,File Control Block)linux文件系统使用目录来组织文件。目录也被组织成文件存放在磁盘上,成为目录文件。每个文件都在它属于的目录文件中登记一个文件目录项,这个文件目录项就是文件控制块。下图就是一个目录文件的物理结构示意图。遍历该结构,就可以找到该目录下的所有文件的文件控制块。文件控制块1 文件控制块2 ....

2008-03-04 15:44:00 174

判断一个整数是否是2的阶乘的快速算法

判断一个整数是否是2的阶乘的快速算法。假设d是一个整数,如果d是2的阶乘,那么(d-1)&d的值一定等于 0。故只需计算(d-1)&d的值即可。

2008-02-15 22:40:00 533

[转载]JBoss5的完全可定制性

面向对象奠基人之一Grady Booch说:The great thing about objects is they can be replaced.对象最伟大的之处是其可被替代(这也是使用OO的主要原因之一)。  每个对象都是可替代意味着高度的灵活性,我们曾经梦想的“按需装配”时代已经来临,由Ioc模式/依赖注射组成微容器可以帮助我们实现对象的可替代性。  Spring/HiveMin...

2008-01-02 15:41:00 97

JBoss Application Server的部署架构

JBoss 的部署架构可以分为三个部分:热部署机制、部署的通用流程、部署的过程。热部署机制,使得我们在不需要重启JBoss的情况下,可以增加、修改和删除部署单元。JBoss会在运行时“察觉”到这些变化,并做出相应的处理。部署的通用流程,是一个对不同类型的部署单元都适用的部署过程。JBoss支持多种部署单元,包括jar格式的EJB组件、war格式的Web组件、ear格式的企业应用组件、sa...

2007-10-11 20:59:00 88

JBoss Application Server的启动过程

本文以JBoss Application Server 4.2.1 GA(以下简称JBoss)为例,介绍它在Windows平台上的启动过程。为了方便叙述,对平台环境做以下假定:Java运行时的安装路径为C:\Java,JBoss的安装路径为C:\JBoss。既然用100% Java编写的JBoss具有跨平台的特性,那为什么还要强调Windows平台呢?这是因为,JBoss的启动是从平台相关的脚...

2007-10-07 19:04:00 117

JBoss创始人Marc Fleury

1998年,在硅谷SUN公司的SAP实验室,一个年轻人正坐在电脑前 面思考,然后写着什么东西。不,他没有在写程序,他在写辞呈。他正在做出人生的一个重大决定:他要辞掉在SUN的这份工作,投身到open source的开发。旁边好多朋友在劝他,这样的做法是"moving down the food chain"(应该是丢掉铁饭碗的意思),这是他整个职业生涯的下坡路。但是这个年轻人却义无反顾地微笑着,眼...

2007-09-19 21:36:00 168

A “Killer App” for AOP

原文地址:http://www.linux-mag.com/id/1677 Tuesday, June 15th, 2004By Bill Burke, Marc FleuryPioneered at Xerox's Palo Alto Research Center (PARC) in the late '80s and early '90s, aspect-oriented p...

2007-09-19 21:25:00 289

Aspect-Oriented Programming and JBoss

<!--//-->下面是关于这篇文章的讨论,值得一看。Logging and tracing code<!-- thread_header.view --> Why is it that all of the AOP examples I see are always logging and tracing? Is AOP good for anything else? ...

2007-09-18 17:50:00 274

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除