君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 106 下一页

2013年9月14日 #

摘要: 注:本文的主要参考资料为结城浩所著《JAVA多线程设计模式》。单线程执行模式(Single Threaded Execution Pattern)是最简单的多线程设计模式,几乎所有其他的模式都在不同程度上应用了该模式。先看一个程序,通过它可以体验多线程程序无法正确执行的场景,这里所写的是个关于“只能单个通过的门”的程序:有三个人频繁地、反复地经过一个只能容许单人经过的门,当人通过门的时候,这个程序显示出通过人的“姓名”与“出生地”,其代码如下:Java代码publicclassGate{privateintcounter=0;privateStringname="Nobody&quo 阅读全文
posted @ 2013-09-14 22:26 刺猬的温驯 阅读(812) 评论(0) 推荐(1) 编辑

摘要: 这个专题主要讨论并发编程的问题,所有的讨论都是基于JAVA语言的(因其独特的内存模型以及原生对多线程的支持能力),不过本文传达的是一种分析的思路,任何有经验的朋友都能很轻松地将其扩展到任何一门语言。注:本文的主要参考资料为结城浩所著《JAVA多线程设计模式》。线程的英文名Thread,原意指“细丝”。在多线程程序中,若要追踪各个线程的轨迹,就会派生出一系列错综复杂的乱线团。假设在运行过程中,如果有人问到“请问现在执行到代码的哪一部分了?”,你需要多个手指头才能指出正确的地方。当应用程序的规模、复杂程度达到一定程度时,并发设计是一个必将考虑到的问题,以下是一些常见的应用:GUI:以word为例, 阅读全文
posted @ 2013-09-14 22:21 刺猬的温驯 阅读(3629) 评论(0) 推荐(1) 编辑

2013年8月27日 #

摘要: 缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。基本信息 缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发访问和缓存数据的生命周期。 Hibernate的缓存包括Session的缓存和SessionFactory的缓存,其中SessionFactory的缓存又可以分为两类:内置缓存和外置缓存。Sessi.. 阅读全文
posted @ 2013-08-27 00:50 刺猬的温驯 阅读(424) 评论(0) 推荐(0) 编辑

2013年8月23日 #

摘要: 分类体系分类:给定一个对象,从一个事先定义好的分类体系中挑出一个或多个最适合该对象的类别。文本分类(TC, Text Categorization):在给定的分类体系下,根据文本内容自动的确定文本关联的类别。从数学角度看,文本分类是一个映射的过程,它将未标明类别的文本映射到已有的类别中,该映射可以是... 阅读全文
posted @ 2013-08-23 01:06 刺猬的温驯 阅读(2744) 评论(0) 推荐(0) 编辑

2013年8月22日 #

摘要: 转载自http://ljbal.iteye.com/blog/497314前段时间在公司做了一个项目,项目用了spring框架实现,WEB容器是Tomct 5,虽然说把项目做完了,但是一直对spring的IoC容器在web容器如何启动和起作用的并不清楚。所以就抽时间看一下spring的源代码,借此了解它的原理。 我们知道,对于使用Spring的web应用,无须手动创建Spring容器,而是通过配置文件,声明式的创建Spring容器。因此在Web应用中创建Spring容器有如下两种方式: 1. 直接在web.xml文件中配置创建Spring容器。2. 利用第三方MVC框架的扩展点,创建Sprin 阅读全文
posted @ 2013-08-22 00:03 刺猬的温驯 阅读(2936) 评论(2) 推荐(1) 编辑

2013年8月11日 #

摘要: 总觉得,Digester不仅仅能作配置文件解析,而且可以作得更多。配置属性 Digester用来解析应用系统的配置文件,其本身也有很可配置的属性。属性描述classLoader指定类装载器(class loader)。ObjectCreateRule 和 FactoryCreateRule两个规则中,需要动态加载一些类(如那些盛放XML解析出来的数据的javaBean等),装载器可以在次指定。如果不指定,对这此类的加载将会利用线程上下文中的加载器(当useContextClassLoader值为真时)或利用加载Digester的那个加载器。errorHandler指定 SAX ErrorHa. 阅读全文
posted @ 2013-08-11 18:31 刺猬的温驯 阅读(744) 评论(0) 推荐(0) 编辑

摘要: 为便于理解,将笔记的内容结构作了一些调整。对象栈 对digester技术最普通的应用,是用来动态创建一个由Java对象构成的树结构,各对象的属性以及对象间的关系,基于XML文档的内容来设置(XML文档就是一棵树)。为实现这种应用,Digester提供了一个对象栈,以供在相关的模板识别后被激活的处理规则操作。此栈的基本操作包括:clear(),清空栈的内容peek(),返回对栈顶对象的引用pop(),将栈顶对象弹出并返回push(),将一个新的对象压入栈顶 用栈的原因,就是当识别出一个XML元素的“开始”时,将相关对象生成并压入栈顶,这个对象在处理该元素的子元素的过程中一直在栈中,当所有子元.. 阅读全文
posted @ 2013-08-11 18:30 刺猬的温驯 阅读(317) 评论(0) 推荐(0) 编辑

摘要: 本博文系转载,作者原文已经无法找到,感谢原作者的辛苦整理Digester学习笔记(一) 在windows下开发程序,用M$提供的接口处理.ini文件或管理注册表的键值是非常方便的。在java平台上开发程序,则习惯于以xml格式的文件来存放系统的配置信息,对这种文件的解析和处理,可以用sax或dom。有没有更简便的方法呢?有,就是用digester模块。 Digester是Jakarta 子项目Commons下的一个模块,支持基于规则的对任意XML文档的处理。它最初是Structs项目的一部分,后因其通用性而划归Commons.下载及编译cvs -d :pserver:anoncvs@cvs.. 阅读全文
posted @ 2013-08-11 18:29 刺猬的温驯 阅读(1123) 评论(0) 推荐(0) 编辑

摘要: 要使用一个web应用程序,必须要将表示该应用程序的Context实例部署到一个host实例中。在tomcat中,context实例可以用war文件的形式来部署,也可以将整个web应用拷贝到Tomcat安装目录下的webapp下。对于部署的每个web应用程序,可以在其中包含一个描述文件(该文件是可... 阅读全文
posted @ 2013-08-11 00:25 刺猬的温驯 阅读(429) 评论(0) 推荐(0) 编辑

摘要: 本文重点关注启动tomcat时会用到的两个类,分别为Catalina类和Bootstrap类,它们都位于org.apachae.catalina.startup包下;Catalina类用于启动或关闭Server对象,并负责解析server.xml配置文件;Bootstrap类是一个入口点,负责创建C... 阅读全文
posted @ 2013-08-11 00:24 刺猬的温驯 阅读(461) 评论(0) 推荐(0) 编辑

上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 106 下一页