摘要:
Robert C. Martin提出的面向对 象的5个原 则 , 这 次介 绍 一下单一 责 任原 则 。 单 一 责 任原 则 (Single Responsibility Principle (SRP)): 类 的 责 任只有一个,修改 类 的理由不能存在多个。 参考文档(http://www.objectmentor.com/resources/articles/srp.pdf ) 遵循SR... 阅读全文
摘要:
首先,让我们分析一下背景。什么是软件开发过程中最不稳定的因素?——答案是需求!需求在软件开发过程中时时刻刻都可能发生变化。那么,如何灵活应对变化是软件结构设计中最重要也是最困难的一个问题。好的设计带来了极大了灵活性,不好的设计则充斥着僵化的臭味。这样,也就引出了本文的主题:【开发封闭原则】。 下面,就来简单扼要的介绍一下什么是【开放封闭原则】。【开发封闭原则】包括两个特征:... 阅读全文
摘要:
实际上,我关于java的基础知识的90%以上都来自Thinking in Java。对于其中的synchronized关键字,当时就是浏览一下,大概知道意思,也没有细看。后来一直没有用过这个关键字。昨天看Thinking in Patterns with Java中的Observer模式,看了其中的Observable类的源码,发现里面几乎所有的方法都用了synchronized关键字(不是全部)... 阅读全文
摘要:
往往混淆了这三个函数的使用。从操作系统的角度讲,os会维护一个ready queue(就绪的线程队列)。并且在某一时刻cpu只为ready queue中位于队列头部的线程服务。但是当前正在被服务的线程可能觉得cpu的服务质量不够好,于是提前退出,这就是yield。或者当前正在被服务的线程需要睡一会,醒来后继续被服务,这就是sleep。sleep方法不推荐使用,可用wait。线程退出最好自己实现,在... 阅读全文
摘要:
一、线程有哪些状态 线程的全部状态如下: born(新生),runnable(可运行),running(运行),waiting(等待),sleeping(睡眠),blocked(阻塞),dead(死亡)。二、状态之间的关系:当一个Runnable类型对象的构造函数第一次被调用时,一个新的的线程就诞生了。除非我们在构造函数中调用了start方法,否则这个新线程将作为一个新对象呆在内存中基本上什么事情... 阅读全文
摘要:
事务管理事务(Transaction):1、构成单一逻辑工作单元的操作集合DBMS中的用户程序DBMS外的可执行程序对数据库的读/写操作序列2、读从数据库中读取数据,首先从磁盘中读到内存(Buffer Pool),然后赋给变量。3、写先完成内存中的数据复制,然后写入磁盘。事务的特性-ACID:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durab... 阅读全文
摘要:
http://blog.csdn.net/DL88250/archive/2007/10/16/1826713.aspx 阅读全文
摘要:
Tomcat 6.X实现了JCP的Servlet 2.5和JSP2.1的规范,并且包括其它很多有用的功能,使它成为开发和部署web应用和web服务的坚实平台。 NIO (No-blocking I/O)从JDK 1.4起,NIO API作为一个基于缓冲区,并能提供非阻塞I/O操作的API被引入。 作为开源web服务器的java实现,tomcat几乎就是web开发者开发、测试的首选,有很多其他商业... 阅读全文
摘要:
进程与线程进程和线程是两个相对的概念,通常来说,一个进程可以定义程序的一个实例(Instance)。在Win32中,进程并不执行什么,它只是占据应用程序所使用的地址空间。为了让进程完成一定的工作,进程必须至少占有一个线程,正是这个线程负责包含进程地址空间中的代码。实际上,一个进程可以包含几个线程,它们可以同时执行进程地址空间中的代码。为了做到这一点,每个线程有自己的一组CPU寄存器和堆栈。每个进程... 阅读全文
摘要:
Java 语言是一种具有动态性的解释型编程语言,当指定程序运行的时候, Java 虚拟机就将编译生成的 . class 文件按照需求和一定的规则加载进内存,并组织成为一个完整的 Java 应用程序。 Java 语言把每个单独的类 Class 和接口 Implements 编译成单独的一个 . class 文件,这些文件对于 Java 运行环境来说就是一个个可以动态加载的单元。正是因为 Java 的... 阅读全文