1.兩個對象值相同(x.equals(y)==true),但卻可有不同的hash code,這句話對不對?為什么?
2.GC是什么?為什么要有GC?
3.請簡要描述一下J2EE應(yīng)用中的class loader的層次結(jié)構(gòu)?
4.寫一段代碼,實(shí)現(xiàn)銀行轉(zhuǎn)帳功能:
接口定義如下:
public interface ITransfer {
/**
* <pre>
* 銀行內(nèi)部轉(zhuǎn)帳,從轉(zhuǎn)出帳號中扣除轉(zhuǎn)帳金額,給轉(zhuǎn)入帳號增加轉(zhuǎn)帳金額,
* 需要保證以上兩個操作,要么同時成功,要么同時失敗
* </pre>
*
* @param fromAccountId
* 轉(zhuǎn)出帳號
* @param outAccountId
* 轉(zhuǎn)入帳號
* @param amount
* 轉(zhuǎn)帳金額
*/
public void transferInner(String fromAccountId, String outAccountId,
BigDecimal amount);
/**
* <pre>
* 外部轉(zhuǎn)帳-轉(zhuǎn)出,從轉(zhuǎn)出帳號中扣除轉(zhuǎn)帳金額
* </pre>
*
* @param fromAccountId
* 轉(zhuǎn)出帳號
* @param amount
* 轉(zhuǎn)帳金額
*/
public void transferOut(String fromAccountId, BigDecimal amount);
/**
* <pre>
* 外部轉(zhuǎn)帳-轉(zhuǎn)入,給轉(zhuǎn)入帳號增加轉(zhuǎn)帳金額
* </pre>
*
* @param toAccountId
* 轉(zhuǎn)入帳號
* @param amount
* 轉(zhuǎn)帳金額
*/
public void transerIn(String toAccountId, BigDecimal amount);
}
/**
* <pre>
* 銀行內(nèi)部轉(zhuǎn)帳,從轉(zhuǎn)出帳號中扣除轉(zhuǎn)帳金額,給轉(zhuǎn)入帳號增加轉(zhuǎn)帳金額,
* 需要保證以上兩個操作,要么同時成功,要么同時失敗
* </pre>
*
* @param fromAccountId
* 轉(zhuǎn)出帳號
* @param outAccountId
* 轉(zhuǎn)入帳號
* @param amount
* 轉(zhuǎn)帳金額
*/
public void transferInner(String fromAccountId, String outAccountId,
BigDecimal amount);
/**
* <pre>
* 外部轉(zhuǎn)帳-轉(zhuǎn)出,從轉(zhuǎn)出帳號中扣除轉(zhuǎn)帳金額
* </pre>
*
* @param fromAccountId
* 轉(zhuǎn)出帳號
* @param amount
* 轉(zhuǎn)帳金額
*/
public void transferOut(String fromAccountId, BigDecimal amount);
/**
* <pre>
* 外部轉(zhuǎn)帳-轉(zhuǎn)入,給轉(zhuǎn)入帳號增加轉(zhuǎn)帳金額
* </pre>
*
* @param toAccountId
* 轉(zhuǎn)入帳號
* @param amount
* 轉(zhuǎn)帳金額
*/
public void transerIn(String toAccountId, BigDecimal amount);
}
請編寫你的實(shí)現(xiàn)類,來實(shí)現(xiàn)上述接口
Account表
字段:accountId , 主鍵 varchar2(32), 用戶帳號
字段:amount , 金額 number(18,3)
5."組合優(yōu)于繼承",是否同意這句話,并闡述你的觀點(diǎn)。
6.請說下Template模式與Strategy模式的異同點(diǎn)。