–java部分 *PRivate、默認、protected、public作用范圍 1)private,同類 2)默認,同類、同包 3)protected,同類,同包,子類 4)public,所有
*抽象類與接口的異同 同:具有抽象方法 異: 1)抽象類可以有構造器,非抽象方法,非公有屬性,僅可以單繼承抽象類 2)接口僅有公有抽象方法或者公有靜態常量,可以同時實現多個接口
通俗說法:接口比抽象類更抽象(接口不能有屬性,只能有方法,但抽象類可以,抽象類還可以有具體實現的方法,接口則只能有抽象方法),對于抽象類,如果需要添加新的方法,可以直接在抽象類中添加具體的實現,子類可以不進行變更;而對于接口則不行,如果接口進行了變更,則所有實現這個接口的類都必須進行相應的改動。 個人使用經驗:一般在控制層使用抽象類,提取公共初始化方法、框架定制化工具方法等 一般會在業務層使用接口
*List、Set、Collections區別 1)List,有序可重復 2)Set, 無序不可重復 3)Collections,集合工具類
*Collection和Collections的區別 java.util.Collection 是一個集合接口。它提供了對集合對象進行基本操作的通用接口方法。Collection接口在Java 類庫中有很多具體的實現。Collection接口的意義是為各種具體的集合提供了最大化的統一操作方式。 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set java.util.Collections 是一個包裝類。它包含有各種有關集合操作的靜態多態方法。此類不能實例化,就像一個工具類,服務于Java的Collection框架。Collections中常用的方法有Collections.sort(),Collectios.max(),Collections.binarySearch(),Collections.replaceAll(),Collections.reverse(),Collections.fill()等等
–jsp,JS部分 –框架部分 –數據庫部分 *inner join、left join、 right join區別 1)inner join,兩表字段都有值才會顯示一條記錄 2)left join,兩表字段值相同,以及左表字段有值,右表字段值為null,如果用where的話,由表字段為null,查詢的時候會報錯。 3)right join,與上相反
*數據庫優化 1 查詢語句的優化,這個主要是根據語句和數據庫索引的情況,結合查詢計劃的分析結果,對性能較低的查詢語句進行重寫,在執行查詢前執行表分析語句也可以算這里;再比如用使用存儲過程; 2 數據結構優化,這個包括根據實際的應用中業務邏輯,對數據庫的結構進行重新設計,或者創建相關索引里提高查詢效率; 3 數據庫設置優化,這方面主要是調整數據庫和數據結構的相關參數提高應用訪問系統的效率; 4 存儲結構優化,在數據量較大的情況下,可以考慮通過數據庫的存儲結構進行優化,比如對數據進行partition,將數據存儲在磁盤陣列服務器上等。 對多個表進行連接查詢時應遵循的優化原則: (1) 用于連接的子句的列應被索引、在Where子句中應盡量利用索引,而不是避開索引。 (2) 連接操作應從返回較少行上驅動。 (3) 如果所連接的表A和B,A表長度遠遠大于B表,建議從較大的A表上驅動。 (4) 如果Where子句中含有選擇性條件,Where No=20,將最具有選擇性部分放在表達式最后。 (5) 如果只有一個表有索引,另一表無索引,無索引的表通常作為驅動表。如A表的No列以被索引,而B表的No 列沒被索引,則應當B表作為驅動表,A表作為被驅動表。 (6) 若用于連接的列和Where子句中其他選擇條件列均有索引,則按各個索引對查詢的有效性和選擇性分別定出級別,結合表中具體數據構成情況,從中選出優化路徑,一般需要考慮:子句中哪些列可以使用索引、哪些索引具有唯一性及被查詢表行數目等。
*過程主要是針對數據處理。業務性的。視圖主要是取得數據。一般來說,視圖只是select,沒有update,delete功能。過程啥都能干。
新聞熱點
疑難解答