- 浏览: 231690 次
- 性别:
- 来自: 上海
最新评论
-
hanmiao:
我在IBM网站上找到这篇文章,比较详细的介绍了信息分片与信息分 ...
Websphere MQ -
lancezhcj:
...
Oracle索引 -
shaier:
讲的很不错啊!
SERVICE_NAME, SID和schema区别 -
echohfut:
好久没有关注了。但是取下来的代码怎么导入Eclipse呢?
liferay笔记 -
webee:
已经有ide了!命令都可以不要了!
liferay笔记
文章列表
LLD一般与Functional Specification 和 HLD对应。包括:
Purpose, Intended/Target Audience
1. Data Model
2. 必要的UML图
3. Logging处理
4. Exception 处理
5. Security处理
6. Transaction处理
7. Assumption
8. Dependencies/Third Party Jar
9. External Interfaces
10. Limitation
哪位兄弟可以谈谈这方面的理解?尤其是分布式Caching.
1. synchronized语句
同步的代码块尽量少
locks split, 私有的对象锁代替this
2. volatile
for double, long primitive type.
3. ThreadLocal
4. 使用 JDK1.5提供的锁 java.util.concurrent.locks.Lock, java.util.concurrent.locks.ReadWriteLock
5. 使用 JDK1.5提供的多线程类java.util.concurrent.locks.Lock
jdk中动态代理只支持接口的方式
实现方式是:
1. 调用 java.lang.reflect.Proxy中的静态方法
newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h)
loader和interfaces是被代理类的
针对返回的对象转型为被代理类的接口
2. 实现一个java.lang.reflect. ...
1. javax.xml.rpc.Service <------------------> WSDL中的 service
2. 从jndi(J2EE)或者Service Factory(J2SE)中获取service以后
myService.getPort <----------------------> WSDL中的port
port 才是真正的对应一个service接口,也即SEI(Servie Endpoint Interface)
一个SEI例子如下:
public interface MyPort extends java.r ...
在EJB开发过程中,根据JNDI找到Home接口再生成远程接口对象是一个耗费资源的事。因为在很多遗留的EJB系统中有很多Cache的方案。一部分是Cache Home接口,一部分Cache 远程接口对象。怎么理解这两种方案的区别呢?答案是SFSB时Cache Home; SLSB时Cache 远程接口对象。以为SFSB只能跟Client的一次Session关联,多个Client不能重用(也即一次性的)。相反SLSB可以从Pool中直接重用。
此方案一般用在ServiceLocator中,ServiceLocator用来隔离web层和业务层,避免web层直接接触Ejb home等接口。
...
今天在看EJB的相关知识时回忆起以前SLSB中业务接口的设计。
声明一个业务接口继承自java.rmi.Remote接口(BTW,这是一个Marker interface). 该接口中声明所有业务需要的远程方法。EJB实现类实现这个业务接口即可,不需要直接实现java.rmi.Remote
该方案目的有二:
1. 抽象出一个公共的业务接口并强迫EJB实现(编译时检查)
2. 解耦EJB中多余的接口声明。当然注意的是业务接口中的方法还是需要抛出java.rmi.RemoteException的,要不EJB实现类没法实现.(参考实现时接口变窄的思想)
1. 异常是方法执行完后才抛出的,跟返回结果相似,从这个角度来说不应该是方法签名的一部分。我们知道,如果根据不同的返回类型来区别签名从而达到重载的目的是不允许的,因为方法在没有返回前系统是不知道该选择哪个方法来执行的。Java中也不允许仅仅异常声明不一样的方法进行重载。
2. 异常在接口实现,方法继承中只能变的越来越少(变窄)。也即父类异常声明必须包括(或者说是子类异常的父类)子类异常声明。这个可以这么理解,因为我们都是面向接口或者超类编程,客户端代码一定捕获的是接口或者超类中声明的异常。这样不管具体实现类中抛出什么样的异常,对客户端代码中的try,catch结构不会有任何影响。相反如果 ...
针对session EJB的应用,原因有二:
1. Remote Session EJB的分布式功能(包括分布式事务传播)
2. 即使只用Home EJB,也可以利用它的声明式事务功能
javascript中== 和 ===都表示逻辑等,不同的是:
==在做逻辑等时,先进行类型转换。===则不会。如下例:
<script language="javascript">
var valueA = "1";
var valueB = 1;
if ( valueA == valueB) {
alert("Equal");
}
else {
alert("Not equa ...
As simple as possible and no simpler. ------Einstein
Life is like a snowball. The important thing is finding wet snow and a really long hill. -----Warren Buffett
Work expands so as to fill the time available for its completion -----Parkinson's Law
The process areas of Human Resource Management are: Develop Human Resource Plan; Acquire Project Team, Develop Project Team and Manage Project Team.
1. Develop Human Resource Plan
Roles & Responsibilities matrix(Responsible, Accountable, Supports, Informed, Consulted), Organization Chart ...
checked 和 unchecked exception 的区别,资深一点的Java程序员都知道。这里我感兴趣的是该怎么用checked 和 unchecked exception.
最早的exception处理机制来自C++,在C中为了避免错误,我们会根据返回结果或者判断状态(文件操作)来保证程序的正确性。这样在代码中就会有大量的if/else判断最后甚至让读代码的人忘了程序片段的真正意图。因此C++中引入了exception的处理机制。不过C++为了兼容C,异常处理是选择性的。Java是真正严格实现异常机制的语言。
从架构的角度什么时候用checked exception, ...
一直不是很理解这三个感念之间的区别。Java是面向对象的编程语言,这点与现在流行的面向函数的动态编程语言不同。Javascript就是后者的一个例子。函数可以独立于对象存在,(或者说它本身就是一种对象)。
Java里没有函数指针,但可以向函数中传入一个匿名内部类模拟这种行为。
Java目前还未引入closures, 但基于JVM的Groovy已经有Closures概念。在Groovy中,所谓Closures就是一段大括号括起来的代码段。这段代码按照Java的习惯一般只能存在于函数中(初始化代码除外)并以函数名的方式调用。在Groovy中,这段代码可以赋给一个变量,通过这个变量来调 ...
1. oracle Hints
select /*+ FIRST_ROWS(100) */ field1, field2,... from ... where ...
上面是Hints, 用于优化,告诉oracle 尽快返回前100行,适用于OLTP。还有ALL_ROWS,告诉Oracle用最少的资源处理所有行并一次返回。
2. FTS(全表扫描)可以并行,通过设置 DB_FILE_MULTIBLOCK_READ_COUNT
索引扫描不能并行,一般快些。
3. Oracle 提供了两种优化策略
一种是 Rule-base Optimizer
...