08 2012 档案

摘要:TOMCAT源码分析(启动框架) 前言: 本文是我阅读了TOMCAT源码后的一些心得。 主要是讲解TOMCAT的系统框架, 以及启动流程。若有错漏之处,敬请批评指教! 建议: 毕竟TOMCAT的框架还是比较复杂的, 单是从文字上理解, 是不那么容易掌握TOMCAT的框架的。 所以得实践、实践、再实践。 建议下载一份TOMCAT的源码, 调试通过, 然后单步跟踪其启动过程。 如果有不明白的地方, 再来查阅本文, 看是否能得到帮助。 我相信这样效果以及学习速度都会好很多! 1. Tomcat的整体框架结构 Tomcat的基本框架, 分为4个层次。 Top Level Elements... 阅读全文
posted @ 2012-08-24 19:40 Think in Java 阅读(668) 评论(0) 推荐(0)
摘要:Java 内存分配:1.寄存器我们在程序中无法控制2.栈存放基本类型的变量数据,局部变量,和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3.堆存放用new产生的对象,数组。为了给垃圾回收器使用,堆主要分成三个区域,分别叫作New Generation,Old Generation或叫Tenured Generation,以及Perm space。New Generation是用来存放新建的对象的空间,在对象新建的时候被使用。如果长时间还使用的话,它们会被垃圾回收器移动到Old Generation(或叫Tenured Ge 阅读全文
posted @ 2012-08-11 00:32 Think in Java 阅读(365) 评论(0) 推荐(0)
摘要:代码审查可以帮助提高代码质量,避免由于代码习惯而造成的 bug。下面列出的这些要点因该可以作为大部分代码审查的指导,如果是 Java 应用的话,这些建议应该被视作最佳实践。文档1. Javadoc 应该在每一个类和方法中添加。2. 如果是修复某个 bug,应该添加 bug ID。3. 走捷径的方法或者复杂的逻辑要有解释。4. 如果代码会被公开,每个文件头都要标注版权信息。5. 复杂的 HTML,JavaScript,CSS 应该包含文档。功能1. 如果类似的逻辑被使用了多次,应该把它写成一个帮助类,然后在多出调用。2. 鼓励使用 API 而不是重复编写代码解决相同的问题。3. 要强调代码的单元 阅读全文
posted @ 2012-08-10 21:39 Think in Java 阅读(140) 评论(0) 推荐(0)
摘要:问:什么是NULL?答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零。ORACLE允许任何一种数据类型的字段为空,除了以下两种情况:1、主键字段(primary key),2、定义时已经加了NOT NULL限制条件的字段说明:1、等价于没有任何值、是未知数。2、NULL与0、空字符串、空格都不同。3、对空值做加、减、乘、除等运算操作,结果仍为空。4、NULL的处理使用NVL函数。5、比较时使用关键字用“is null”和“is not null”。6、空值不能被索引,所以查询时有些符合条件的数据可能查不出来,count(*)中 阅读全文
posted @ 2012-08-08 23:18 Think in Java 阅读(513) 评论(0) 推荐(0)
摘要:数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他 阅读全文
posted @ 2012-08-08 22:41 Think in Java 阅读(339) 评论(0) 推荐(0)