上一页 1 2 3 4 5 6 ··· 18 下一页
摘要: 一。重部署(reloadable)Web容器通常会有一个特殊的目录(比如说Tomcat中的“webapps”、JBoss中的“deploy”),该目录会被定期扫描,以找出新的web应用或是现有应用发生的改变。当扫描器检测到有一个已部署的.WAR应用被更新了时,扫描器就会引发一个重部署过程一项被大多数web容器支持的附加功能就是所谓的“展开式部署(exploded deployment)”,也被称为“非打包式的”或是“目录”部署。这种方式不是部署一个.WAR的归档文件,而是可以部署一个有着与.WAR归档文件有着完全相同的内容布局的目录,因为打包一个WAR是一项代价不菲的操作,因此部署目录可以节省 阅读全文
posted @ 2013-05-20 17:15 highriver 阅读(1691) 评论(0) 推荐(0) 编辑
摘要: 垃圾回收算法与垃圾回收器1.live time决定了新老生代的回收算法。新生代使用copy collect,老生代使用MarkSeep 或 MarkCompact 新生代的对象活少死多,采用copy策略,copy对象少,需要的目标空间小。copy的成本小。老生代的对象存活时间长,所以采用mark sweep/mark compatc的策略。如果使用copy的策略,由于活多死少,copy的对象多,需要目标空间大,copy的成本高。2.1 copy collect:理论上copy算法新生代的空间按照1:1划分,一半空间用来存放新建对象,另一半干净空间准备接收对象,这样的空间利用率只有50%,即时刻 阅读全文
posted @ 2013-04-17 00:09 highriver 阅读(1401) 评论(0) 推荐(0) 编辑
摘要: 一.时序图1.时序图概念:时序图的目的是:表示消息的顺序和时间的排序。生命线自上而下表示时间的顺序。时序图的消息就是对象之间的调用。时序图的消息发送可以是其它对象,也可以是自身。MetaClass在时序图中表示静态类,生命线表示的是类的生命线而不是实例的生命线,静态方法的调用会使用MetaClass。时序图中的图框的条件应该在生命线上。框图可以嵌套,常用的框图包括loop,alt。时序图比较复杂时,还可以包括引用,引用到一个局部的时序图上。初始消息的表示。比如上图中的doX消息。2.线程与时序图2.1线程的表示特点:将一个Runnable类做为参数构造Thread实例或者分配到线程池中线程执行 阅读全文
posted @ 2013-02-25 16:47 highriver 阅读(763) 评论(0) 推荐(0) 编辑
摘要: 分布式系统或者清楚的分层系统中,客户端与服务端的职责需要界定,直接影响到了接口的定义。原则一:客户端对细节透明细节要封装成类型,让客户端依赖于类型(比如Enum,抽象类的子类,接口的实现类)来明确行为。客户端尽量做到只调用,简化调用。在开发接口时,尽量做到对客户端友好。比如SNS模块中,以前发送微博的内容交给了客户端,客户端需要了解如何去构造微博的内容。考虑的东西很多。现在对于客户端都透明。客户端只需了解发送的类型理解了这条原则,学习设计模式的时候,就会发现各种模式的目的都是客户端不依赖细节。将细节或变化的内容抽取到类中。备忘录模式,如果不使用备忘录模式,客户端依赖需要了解具体的过程的状态值。 阅读全文
posted @ 2013-02-20 17:23 highriver 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 1.理解synchronized首先需要明确以下概念:什么是监视器:this,或者SomeClass.class。什么是对象锁:this可以看做是java.lang.Object的实例,SomeClass.class可以看做是java.lang.Class的实例,因为JVM内部为每个这样的实例都关联一个锁,所以把这样的内部锁称为对象锁。区别Class类的实例和类的实例: java每个类都对应一个Class类的实例,Class类的实例在JVM加载类时创建。synchronized (SomeClass.class) or public synchronized static void someS 阅读全文
posted @ 2013-02-04 18:59 highriver 阅读(2348) 评论(0) 推荐(0) 编辑
摘要: svn操作:1.如果本机的默认的LANG环境变量是zh_CN.UTF-8,生成的patch里面包含“版本号”,这样在review board上传patch会因为格式问题导致失败,最好把LANG该为英文, export LANG="en_US.UTF-8"2.svn的patch问题svn diff > trip_refactor01_review.diff patch -p1 < trip_refactor01_review.diffcan't find file to patch at input line 5Perhaps you used the w 阅读全文
posted @ 2012-11-28 17:53 highriver 阅读(1609) 评论(0) 推荐(0) 编辑
摘要: 中间件: 中间件就是硬件和操作系统(包括操作系统的软件,比如DB)和应用程序之间一个平台,通过它来解耦,屏蔽操作系统或语言的异构性。用途:中间件为了解决分布异构的问题,中过中间件来抹平异构系统或语言的差异,在复杂的系统中这样的差异无法避免。中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外接口定义不变,应用软件几乎不需要任何修改,从而保护了企业在应用软件开发和维护中的重大投资。特点:1.语言透明性 :使用中间件的程序应能够与另一个用不同语言编写的程序通信。如果用一种不同的语言重写一个程序,其他程序应不受影响。 阅读全文
posted @ 2012-11-27 18:18 highriver 阅读(479) 评论(0) 推荐(0) 编辑
摘要: zookeeper是一个基于观察者的模式的分布式服务管理框架,负责存储和管理大家都关心的数据,并且接受观察者的注册,一旦发生变化,zookeeper就将通知到这些观察者做相应的变化。核心场景:解决分布式系统中的一致性问题核心特性: zookeeper会维护一个目录结点树,每个节点znode可以被监控,包括监控某个目录中存储的数据变化,子目录节点的变化,一旦变化可以通知设置监控的客户端。术语:客户端有二种,一种是client连接zookeeper的客户端,另一种是follower做为客户端与leader连接。任何一台leader或者follower都可以做为客户端连接zookeeper服务器,主 阅读全文
posted @ 2012-11-20 17:53 highriver 阅读(2216) 评论(0) 推荐(0) 编辑
摘要: 一。类型转换postgres的类型转换:通常::用来做类型转换,timestamp到date用的比较多select now()::dateselect now()::varchar示例1:日期的varchar计算成dateselect '2012-11-15 16:15:56.377000+08'::timestamp::dateselect '2012-11-15 16:15:56.377000+08'::date结果: 2012-11-15二。时间的类型转换与相对时间//注意java的timestamp将来在sql中体现的varchar的形式‘2012-11 阅读全文
posted @ 2012-11-16 18:13 highriver 阅读(5062) 评论(0) 推荐(0) 编辑
摘要: zz:git-scm.com/2010/03/08/rerere.htmlOne of the things I didn't touch on at all in the book is the git rerere functionality. This also came up recently during one of my trainings, and I realize that a lot of people probably could use this, so I wanted to let you all now about it.The git rerere f 阅读全文
posted @ 2012-11-08 15:30 highriver 阅读(850) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 18 下一页