1.靜態方法什么時候初始化,在main前還是main后
          ?在main方法后,靜態方法是屬于類的,只有在調用時才初始化(main例外,main的調用是在初始化工作完成后程序進入運行狀態時),但靜態方法在內存中只有一份;

          2.構造函數與繼承的關系
          子類的構造函數內會包含一個父類構造函數,因為在子類構造函數第一行會默認調用父類構造函數,如果覆寫該行則可以自行控制父類構造函數版本;可見得父類構造函數和子類構造函數得關系是“繼承”不是“覆寫”,(每個)子類構造函數繼承(包含)父類構造函數的一個版本,并可以有自己的部分,類似繼承,子類不完全繼承父類方法并可由自己的方法,父類私有不能繼承。

          3.接口沒有構造函數的原因
          1.接口里的方法完全抽象構造函數沒有實現體,無意義
          2.接口為了實現多繼承,子類構造函數必須調用父類構造函數,如果接口有構造函數子類不知道調用哪個父類構造函數

          4.String與StringBuffer

          String類用來表示那些創建后就不會再改變的字符串,它是immutable的。
          而StringBuffer類用來表示內容可變的字符串,并提供了修改底層字符串的方法。


          --當我們進行字符拼接時,請使用StringBuffer類而非String類,因為前者將比后者快上百倍。


          的確,在程序的太多場合我們都會進行字符串拼接工作,簡單的代碼示例如下:


          String str="You are nice.";
          str+="I love you so much.";


          如果用StringBuffer類的話,代碼如下:


          StringBuffer str= new StringBuffer("You are nice.");
          str.append("I love you so much.");


          ??????? 從表面看來String類只用一個加號(+)便完成了字符串的拼接,
          而StringBuffer類卻要調用一個append()方法,是否實現起來更簡潔,更單純呢?其實不然,
          讓我們了解一下程序運行內部發生了哪些事情:


          ??????? 經編譯后程序的bytecode(字節碼)展示出了實質:? 在用String類對象直接拼接時,
          JVM會創建一個臨時的StringBuffer類對象,并調用其append()方法完成字符串的拼接,
          這是因為String類是不可變的,拼接操作不得不使用StringBuffer類(并且--JVM會將"You are nice."和"I love you so much."
          創建為兩個新的String對象)。
          之后,再將這個臨時StringBuffer對象轉型為一個String,代價不菲!可見,在這一個簡單的一次拼接過程中,
          我們讓程序創建了四個對象:兩個待拼接的String,一個臨時StringBuffer,
          和最后將StringBuffer轉型成為的String--它當然不是最初的str了,這個引用的名稱沒變,但它指向了新的String對象。


          ??????? 而如果直接使用StringBuffer類,程序將只產生兩個對象:
          最初的StringBuffer和拼接時的String("I love you so much."),
          也不再需要創建臨時的StringBuffer類對象而后還得將其轉換回String對象。


          ??????? 可以想象,當我們的字符串要被循環拼接若干段時,
          用String類直接操作會帶來多少額外的系統開銷,生成多少無用的臨時StringBuffer對象,
          并處理多少次無謂的強制類型轉換哪。

          5. equals() 和 ==?
          ???equals() 比對象值,即屬性是否相等?
          ?? ==比引用,地址
          ?? 在編譯時期確定的兩個字符串對象引用相等(==)
          ?? 不在編譯期確定的兩個字符串字符串引用不相等

          posted @ 2006-12-10 15:13 hhcto 閱讀(402) | 評論 (0)編輯 收藏
           

          /**
          ?*默認得克隆方法為淺克隆只克隆對象得非引用類型(或者非對象型)成員
          ?*要做深克隆有兩種方法:
          ?*a.覆寫克隆方法(引用型成員的克隆方法)并且克隆時掉一次引用型成員的克隆方法!
          ?*b.序列化對象時默認為深克隆
          ?*
          ?*/
          ?
          ?class Friend implements Cloneable {
          ?? int age;
          ?? String name;
          ??
          ??public Friend(int age, String name) {
          ???this.age = age;
          ???this.name = name;?
          ??}
          ??
          ??public Object clone () throws CloneNotSupportedException {
          ???return super.clone();?
          ??}
          ???
          ?}
          ?
          ?class Person implements Cloneable? {
          ?? int age;
          ??/* *
          ?? *String 類型特殊,因為他為引用型,而且他指向的值為常量,克隆出來的對象改變他的
          ?? *值實際上是改變了克隆出來對象String類型成員的指向不會影響被克隆對象的值及其指向?
          ?? *因為引用被克隆了,我改變的是引用的指向!
          ??*/
          ?? String name;
          ??
          ?? Friend f;
          ??
          ??public Person(int age, String name, Friend f) {
          ???this.age = age;
          ???this.name = name;
          ???this.f = f;
          ??}
          ??
          ??public Object clone () throws CloneNotSupportedException {
          ???Person p = (Person)super.clone();
          ???p.f = (Friend)p.f.clone();
          ???return p;?
          ??}
          ??
          ??public String toString(){
          ??StringBuffer sb = new StringBuffer();
          ??return super.toString()+sb.append("age=").append(age).
          ???append(",name=").append(name).
          ???append("friend=").append("f.name=").
          ???append(f.name).append("f.age=").append(f.age).toString();
          ?}
          ?}
          ?
          ?
          ?public class Clonetest {
          ??public static void main(String [] args)? throws CloneNotSupportedException {
          ???Person p = new Person(4,"haha",new Friend(5,"hehe"));
          ???Person p1 = (Person)p.clone();
          ???p1.name = "oop";
          ???p1.age = 10;
          ???p1.f.name = "ooad";
          ???p1.f.age = 56;
          ???System.out.println (p);
          ??System.out.println (p1);
          ??}?
          ?}

          posted @ 2006-12-10 15:13 hhcto 閱讀(484) | 評論 (0)編輯 收藏
           

          ??????????????????????????? 關于 Spring 的模版機制

          看了 Spring In Action 感覺,對于依賴注入的應用始終貫穿著一個思想“模版機制”,從 jdbc rmi,jms,ejb Spring 的結合使用,都以模版來為我們避免每次繁瑣的初始化和異常處理工作。。。。,使我們的寫程序的精力集中專著到業務。。。。感覺模版就象我們現實生活中的工具我們只需要專注加工后的結果和需要的原料,經過工具出來的就是成品。。。我們不需要關注工具怎么為我們加工物品,需要幾道工序。。。

          posted @ 2006-12-01 10:03 hhcto 閱讀(731) | 評論 (1)編輯 收藏
           

          1 、調用 EJB 時拿到 Home 接口直接轉型為遠程對象

          會報轉型異常。。。應該轉換為遠程接口

          ?

          2 實體 Bean 在數據庫端沒有創建主鍵 ?

          ?????? 會導致生成的實體 Bean ejbcreate 方法返回值為 Object

          ?

          3 Bean 添加方法的時候忘記選擇方法的類型

          會導致方法無法調用(即導致遠程接口沒有此方法簽名),方法類型要和 bean 類型相同,遠程或本地方法的時候

          ?

          4 更改實體 Bean Create 方法方法簽名時只修改了一個方法

          ?????? 應該同時更改 ejbCreate ejbPsotCreate, 還有遠程接口的 ejbCreate 方法

          ?

          5 、 實體Bean設定了標識列而數據庫字段沒有設定標識列

          ?????? 會導致調用實體 Bean Ejbcreate 方法報錯

          posted @ 2006-11-30 23:52 hhcto 閱讀(907) | 評論 (0)編輯 收藏
           
          標簽名 作用 屬性
          <logic:equal> 比較變量是否等于常量值 第一個參數指定變量名
          value為第二個參數指定常量值
          <logic:notEqual> 比較變量是否不等于常量值 同上
          <logic:greaterEqual> 比較變量是否大于或等于常量值 同上
          <logic:greaterThan> 比較變量是否大于常量值 同上
          <logic:lessEqual> 比較變量是否小于或等于常量值 同上
          <logic:lessThan> 比較變量是否小于常量值 同上
          <logic:match> 判斷變量中是否包含指定的常量 name:變量名
          字符串 scope:存儲地方
          value:常量值
          <logic:notMatch> 判斷變量中是否不包含指定的常 同上
          量字符串
          <logic:empty> 判斷指定的變量是否為null或者 name:變量名
          空字符串 “”
          <logic:notEmpty> 判斷指定的變量是否不為null或 name:變量名
          者空字符串 “”
          <logic:present> 判斷指定的對象是否存在 cookie:判斷cookie是否存在
          <logic:present> 判斷指定的對象是否不存在 header:判斷http請求頭是否存子
          user:判斷通過權限驗證的用戶是否擁有指定用戶名
          parameter:判斷請求參數是否存在
          name:判斷javaBean是否存在
          <logic:messagesPresent> 判斷是否在request范圍內存在指定的 name:指定request范圍內是否存在ActionMessage對象的屬性key
          <logic:messagesNotPresent> ActionMessages?? (或者其子類 message:如果為true則從request范圍內檢索key為Globals.
          ActionErrors)對象,以及其中是否存在 MESSAGE_KEY的ActionMessages對象,如果為false則從name屬性
          特定的消息 指定的屬性key,從request范圍檢索ActionMessage對象,如果此時沒有Name屬性則默認的key為Globals.ERROR_KEY
          property:指定從ActionMessage對象中檢索某條消息key
          <logic:iterator> 遍歷數組和集合中的所有元素 name:指定需要遍歷的集合
          id:指定字符串來命名這個變量
          property:指定(如果元素為Javabean)bean的一個屬性
          indexId:設置一個序號
          <logic:froward> 用于轉發請求 name:轉發目標為全局forward
          <logic:redirect> 用于重定向 與<html:link>類似
          主要用法
          1.用于比較運算
          2.用于字符串匹配
          3.判斷指定內容是否存在
          4.進行循環遍歷
          5.進行轉發和重定向
          posted @ 2006-11-30 23:25 hhcto 閱讀(1861) | 評論 (0)編輯 收藏
           
          html標簽 structs標簽 功能
          <html> <html:html>
          <base> <html:base> 生成當前網頁的url絕對路徑
          <a href=""> <html:link> forward:指定全局轉發連接
          href:指定完整url鏈接
          page:指定相對于當前網頁的url
          <html:rewrite> 用于輸出超鏈接中uri部分,即主機和端口號以后的內容
          <image src=""> <html:image> page:指定相對與當前頁面的uri
          <form> <html:form> name:指定actionform的名字
          <input type="text"> <html:text> property:相當于name屬性
          <imput type="submit"> <html:cancel> 用于取消請求,實現需要在action內編程
          <html:submit> 用于提交表單
          <input type="reset"> <html:reset> 用于表單清空
          <input type="checkbox"> <html:checkbox> property:相當于name屬性
          value:選項的值
          <html:mutilbox> property:相當于name屬性value:選項的值
          <imput type="radio"> <html:radio> property:相當于name屬性value:選項的值
          <select> <html:select> size:在網頁上顯示的可選項目的個數
          property:相當于name屬性
          multipel是否多選
          選項為:<html:option value>顯示文本</>選項
          <option> <html:option>
          <html:options> property:相當于value(實際值)
          lableproperty:顯示值
          collection選項集合
          <html:optionCollection> property:選項集合
          value:實際值
          lable:顯示值
          <input type="file"> <html:file> 文件上傳標簽需把
          <html:from method="post" enctype="mutipart/form-data">
          property:文件絕對路徑
          <html:errors> 輸出錯誤消息,錯誤消息來源于ActionMessages、ActionErrors
          name:指定ActionMessages在request和session中的key
          property:指定消息屬性
          bundle:指定資源文件
          <html:message> 與<html:errors>類似
          posted @ 2006-11-30 23:24 hhcto 閱讀(2247) | 評論 (0)編輯 收藏
           
          標簽名 作用 屬性
          <bean:cookie> 檢索cookies信息 id:定義一個java.servlet.http.Cookie的實例保存在page范圍內
          name:指定Cookie的名字
          vlaue:指定Cookie的默認值
          <bean:header> 檢索http請求中的頭信息 id:定義一個String對象保存在page范圍內
          name:指定需要檢索的page信息
          <bean:parameter> 檢索http請求中的參數 id:定義一個String對象保存在page范圍內
          name:指定請求的參數名字
          value:指定請求參數的默認值
          <bean:page> 檢索Jsp隱式對象如request id:定義一個引用,指向一個隱式對象,保存在page范圍內
          property:指定隱式對象的名字(request、response、application、config、session)
          <bean:message> 顯示Resource Bundle中的消息 bundle:指定配置文件中的資源文件key
          key:指定消息語句的key
          <bean:resource> 檢索Web資源的內容 id:定義一個代表web資源的變量
          name:指定web資源的路徑
          input:如果沒有設置,id為String類型,如果設置了值(任意字符串)則id為inputStream類型
          <bean:structs> 檢索structs框架的內在對象 formbean:指定ActionFromBean對象、即Actionform
          (ActionFromBean、ActionFor forward:指定Actionforward對象
          ward、ActionMapping) mapping:指定ActionMapping對象
          <bean:include> 把其他Web的內容放在一個變量 froward:指定轉發路徑
          page:指定相對于當前應用的uri
          href:指定完整的url
          <bean:define> 定義一個變量 id:指定變量的名字
          toScope:指定這個變量存放的范圍
          vlaue:如果指定了,則id指定的變量為字符串型
          name:如果指定了則為已存在bean的名字
          property:name指定Bean的屬性
          <bean:size> 獲得集合或者數組的長度 id:設定一個變量獲得集合或數組長度
          name:指定集合或數組名字
          <bean:write> 用于輸出某個bean或他的屬性 name:指定要輸出的變量或bean的名字
          內容 property:指定要輸出bean的屬性
          bean標簽主要用于: 1.訪問http請求信息或jsp隱式對象
          2.訪問Web應用資源
          3.訪問javabean
          posted @ 2006-11-30 23:23 hhcto 閱讀(2596) | 評論 (0)編輯 收藏
          僅列出標題
          共2頁: 上一頁 1 2 
           
          主站蜘蛛池模板: 南岸区| 武定县| 喀喇沁旗| 饶平县| 本溪市| 普兰店市| 凤阳县| 北宁市| 松滋市| 论坛| 陈巴尔虎旗| 福鼎市| 谷城县| 美姑县| 台江县| 波密县| 阳江市| 德保县| 日照市| 北宁市| 精河县| 梁河县| 定安县| 长乐市| 天气| 武定县| 郑州市| 连山| 弋阳县| 准格尔旗| 台中市| 佳木斯市| 通辽市| 湖北省| 堆龙德庆县| 从江县| 于田县| 宁德市| 濮阳县| 双桥区| 麟游县|