java經驗總結!學習才是真的穩賺不賠!


  1. sleep和wait的區別有:
  2. Servlet方法的使用
  3. 方法重寫的規則,以及兩同兩小一大原則;
  4. DispatcherServlet的解析
  5. 依賴注入DU和控制反轉Ioc
  6. AOP和OOP的區別
  7. Spring的七大模塊
  8. HttpServletRequest類主要處理:
  9. 事件處理三要素:事件源、事件、事件監聽接口
  10. 表達式數據類型計算時的自動提升

sleep和wait的區別有:1,這兩個方法來自不同的類分別是Thread和Object2,最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得敏感詞線程可以使用同步控制塊或者方法。3,wait,notify和notifyAll只能在同步控制方法或者同步控制塊裡面使用,而sleep可以在任何地方使用synchronized(x){x.notify()//或者wait()}4,sleep必須捕獲異常,而wait,notify和notifyAll不需要捕獲異常

Servlet方法的使用 getParameter()是獲取POST/GET傳遞的參數值;getInitParameter獲取Tomcat的server.xml中設置Context的初始化參數getAttribute()是獲取對象容器中的數據值;getRequestDispatcher是請求轉發。

方法重寫的規則,以及兩同兩小一大原則;方法名相同,參數類型相同子類返回類型等於父類方法返回類型,子類拋出異常小於等於父類方法拋出異常,子類訪問權限大於等於父類方法訪問權限。 詳細的說明為:

  1. 重寫是子類對父類的允許訪問的方法的實現過程進行重新編寫, 返回值和形參都不能改變。即外殼不變,核心重寫!
  2. 重寫的好處在於子類可以根據需要,定義特定於自己的行為。 也就是說子類能夠根據需要實現父類的方法。
  3. 重寫方法不能拋出新的檢查異常或者比被重寫方法申明更加寬泛的異常。例如: 父類的一個方法申明瞭一個檢查異常IOException,但是在重寫這個方法的時候不能拋出Exception異常,因為Exception是IOException的父類,只能拋出IOException的子類異常。

方法的重寫規則1)參數列表必須完全與被重寫方法的相同;2)返回類型必須完全與被重寫方法的返回類型相同;(備註:這條信息是標準的重寫方法的規則,但是在java 1.5 版本之前返回類型必須一樣,1.5(包含)j版本之後ava放寬了限制,返回類型必須小於或者等於父類方法的返回類型)。才有了子類返回類型小於等於父類方法返回類型。在java裡面這個怎麼樣都是正確的。3)訪問權限不能比父類中被重寫的方法的訪問權限更低。例如:如果父類的一個方法被聲明為public,那麼在子類中重寫該方法就不能聲明為protected。4)父類的成員方法只能被它的子類重寫。5)聲明為final的方法不能被重寫。6)聲明為static的方法不能被重寫,但是能夠被再次聲明。7)子類和父類在同一個包中,那麼子類可以重寫父類所有方法,除了聲明為private和final的方法。8)子類和父類不在同一個包中,那麼子類只能夠重寫父類的聲明為public和protected的非final方法。9)重寫的方法能夠拋出任何非強制異常,無論被重寫的方法是否拋出異常。但是,重寫的方法不能拋出新的強制性異常,或者比被重寫方法聲明的更廣泛的強制性異常,反之則可以。10)構造方法不能被重寫。11)如果不能繼承一個方法,則不能重寫這個方法。

依賴注入DU和控制反轉Ioc所謂依賴注入就是指:在運行期,由外部容器動態地將依賴對象注入到組件中。當spring容器啟動後,spring容器初始化,創建並管理bean對象,以及銷燬它。所以我們只需從容器直接獲取Bean對象就行,而不用編寫一句代碼來創建bean對象。這種現象就稱作控制反轉,即應用本身不負責依賴對象的創建及維護,依賴對象的創建及維護是由外部容器負責的。這樣控制權就由應用轉移到了外部容器,控制權的轉移就是所謂反轉

AOP和OOP的區別:1.面向方面編程AOP偏重業務處理過程的某個步驟或階段,強調降低模塊之間的耦合度,使代碼擁有更好的移植性。Aspected Oriented Programming 面向方面編程。好處:AOP將程序分解成各個方面或者說關注點。這使得可以模塊化,相當橫向上分切了。它可以解決OOP和過程化方法不能夠很好解決的橫切(crosscut)問題,如:事務、安全、日誌等橫切關注2.面向對象編程(oop)則是對業務分析中抽取的實體進行方法和屬性的封裝。也可以說AOP是面向業務中的動詞領域,OOP面向名詞領域。

AOP的一個很重要的特點是源代碼無關性,也就是說如果我們的系統中引用了AOP組件,即使我們把該組件去掉,系統代碼也應該能夠編譯通過

Spring的七大模塊1. Spring Core: Core封裝包是框架的最基礎部分,提供IOC和依賴注入特性。這裡的基礎概念是BeanFactory,它提供對Factory模式的經典實現來消除對程序性單例模式的需要,並真正地允許你從程序邏輯中分離出依賴關係和配置。2.Spring Context: 構建於Core封裝包基礎上的 Context封裝包,提供了一種框架式的對象訪問方法,有些象JNDI註冊器。Context封裝包的特性得自於Beans封裝包,並添加了對國際化(I18N)的支持(例如資源綁定),事件傳播,資源裝載的方式和Context的透明創建,比如說通過Servlet容器。3.Spring DAO: DAO (Data Access Object)提供了JDBC的抽象層,它可消除冗長的JDBC編碼和解析數據庫廠商特有的錯誤代碼。 並且,JDBC封裝包還提供了一種比編程性更好的聲明性事務管理方法,不僅僅是實現了特定接口,而且對所有的POJOs(plain old Java objects)都適用。4.Spring ORM: ORM 封裝包提供了常用的“對象/關係”映射APIs的集成層。 其中包括JPA

JDOHibernateiBatis 。利用ORM封裝包,可以混合使用所有Spring提供的特性進行“對象/關係”映射,如前邊提到的簡單聲明性事務管理。5.Spring AOP: Spring的 AOP 封裝包提供了符合AOP Alliance規範的面向方面的編程實現,讓你可以定義,例如方法攔截器(method-interceptors)和切點(pointcuts),從邏輯上講,從而減弱代碼的功能耦合,清晰的被分離開。而且,利用source-level的元數據功能,還可以將各種行為信息合併到你的代碼中。6.Spring Web: Spring中的 Web 包提供了基礎的針對Web開發的集成特性,例如多方文件上傳,利用Servlet listeners進行IOC容器初始化和針對Web的ApplicationContext。當與WebWork或Struts一起使用Spring時,這個包使Spring可與其他框架結合。7.Spring Web MVC: Spring中的MVC封裝包提供了Web應用的Model-View-Controller(MVC)實現。Spring的MVC框架並不是僅僅提供一種傳統的實現,它提供了一種清晰的分離模型,在領域模型代碼和Web Form之間。並且,還可以藉助Spring框架的其他特性


HttpServletRequest類主要處理:1.讀取和寫入HTTP頭標2.取得和設置cookies3.取得路徑信息4.標識HTTP會話

事件處理三要素:事件源、事件、事件監聽接口Java提供的事件處理模型是一種人機交互模型。它有三個基本要素:1) 事件源(Event Source):即事件發生的場所,就是指各個組件,如按鈕等,點擊按鈕其實就是組件上發生的一個事件;2) 事件(Event):事件封裝了組件上發生的事情,比如按鈕單擊、按鈕鬆開等等;3) 事件監聽器(Event Listener):負責監聽事件源上發生的特定類型的事件,當事件到來時還必須負責處理相應的事件;


表達式數據類型計算時的自動提升

表達式的數據類型自動提升, 關於類型的自動提升,注意下面的規則。

①所有的byte,short,char型的值將被提升為int型;

②如果有一個操作數是long型,計算結果是long型;

③如果有一個操作數是float型,計算結果是float型;

④如果有一個操作數是double型,計算結果是double型;

想學習編程之類的,可以關注小編私信“編程”領取學習資料!


分享到:


相關文章: