JavaOO小結二,及MySQL小結

流按照傳輸內容分有幾種?各自的父類是什麼?java

流按照傳輸內容有 字節流、字符流、對象流。但其本質都是字節流。字符流和對象流是在字節流基礎上做了一層封裝,以便更好對字符和對象進行操做。數據庫

 

字節流的父類:InputStream和OutputStream編程

字符流的父類:Reader和Writer網絡

 

操做流時,若是文件不存在會出現什麼狀況?若是流不關閉會出現什麼狀況?架構

操做流時,若是文件不存在,對於讀取流而言,會拋出文件未找到異常。對於寫入流而言,會建立新文件。若是流使用完成後不關閉,會浪費內存資源。並且對於寫入流而言,若是流不關閉也不刷新,有可能寫不進數據。函數

 

如何判斷一個文件是否存在?如何建立一個目錄?如何知道一個目錄中有多少文件?測試

使用File類中exists()判斷文件是否存在。日誌

建立新目錄:mkdir();xml

列出目錄中的文件:listFiles();對象

 

什麼是對象序列化?如何實現對象序列化?

當須要傳輸對象時,因爲對象中數據很龐大,因此須要將對象打散成字節序列,以利傳輸。這個過程叫作序列化。到達目的地時,又須要將字節序列還原成對象,叫反序列化。

這時,須要序列化的對象必須實現java.io.Serializable接口

 

TCP/IP協議分爲幾層?

TCP/IP分爲四層:應用層、傳輸層、網絡層、網絡接口層

 

什麼是端口?常見端口有哪些?

端口是一個應用程序輸入輸出數據的通道。每一個應用程序都會有固定的端口。

常見的端口:Telnet協議:23    ftp:21   smtp:25    http:80

 

TCP和UDP的區別是什麼?掌握TCP編程流程。

TCP是比較可靠的傳輸協議,提供三次握手機制,若是信息在傳輸中丟失或耗損,會要求發送方從新發送,保證數據傳輸的完整性。

UDP是比較不可靠的傳輸協議,當信息在傳輸中丟失或耗損,不會要求發送方從新發送。優勢是速度快。

 

什麼是XML?XML聲明是怎樣的?XML註釋是怎樣的?

XML叫作可擴展的標識語言,以標記和子標記的方式描述對象。

聲明<?xml  version=」1.0」   encoding=」utf-8」?>

註釋<!--     - ->

 

一個格式良好的XML有哪些規定?

必需要有聲明

有且只有一個根元素

大小寫區分

屬性必須加引號

標記成對出現

標記要正確嵌套。

空標記要關閉

 

7四、格式良好的XML和有效的XML有什麼區別?

有效的XML除了知足XML基本規範外,還要知足DTD和Schema定義的元素規則。有效的XML必定是格式良好的XML,但格式良好的XML不必定有效。

 

7五、DOM和SAX有什麼區別?

DOM是以樹狀方式的一套API,能夠讀取能夠寫入;能夠隨機訪問XML中元素;大型文檔佔用內存較多。

SAX是一套基於事件方式的API。佔用內存小,只能讀取不能寫入,不能隨機訪問元素,文檔只能遍歷一次。

 

7六、靜態塊和實例化塊分別在何時執行?

靜態塊在類加載時執行,只執行一次。實例化塊在產生對象時執行。每產生一個對象,就執行一次,在super()以後執行。

 

7七、什麼是一對1、一對多、多對多?

一對一指的是一條主表記錄對應一條從表記錄。一對多指的是一條主表記錄對應多條從表記錄。多對多指的是一條主表記錄對應多條從表記錄,同時一條從表記錄也對應多條主表記錄,經過中間表來描述多對多關係。

 

7八、數據庫完整性有哪些?

實體完整性:每條記錄都要有所區別,不能存在如出一轍的記錄。經過主鍵和惟一約束實現

域完整性:保證每一列的值是有效的。經過默認約束、非空約束和檢查約束實現

引用完整性:保證從表的外鍵必須引用主表的主鍵。經過外鍵約束實現

用戶自定義完整性:用戶自定義的規則

 

7九、什麼是主鍵,主鍵有什麼特色?

主鍵是用於標識一個表中兩條記錄不能徹底同樣的列,它有兩個特色:非空和值不能重複。

 

80、什麼是外鍵,它和外鍵約束有什麼區別

外鍵是指從表的某列與主表的某列存在的關聯關係

外鍵約束是指在從表的外鍵列上加上一個約束,強制要求從表的外鍵必須引用主表的主鍵。若是違反該約束,則不容許該條數據的添加修改。

 

8一、增、刪、改、查的基本SQL語句

添加:insert into 表名(字段列表)  values(值)

刪除:delete from 表名 where id=1

修改:update 表名 set 字段名=新值 where id=1

查詢:select  * from 表名

 

8二、DELETE和TRUNCATE的區別

Delete能夠有選擇性的對記錄進行刪除,要寫日誌文件,能夠回滾刪除的記錄

Truncate只能清空表中全部記錄,不寫日誌文件,刪除的記錄不能回滾,但執行效率高。

 

8三、排除重複記錄用什麼關鍵字?如何限制查詢數據的返回限定行數?

DISTINCT

Select * from 表名  limit   0,3;

 

 

8四、如何查詢null值

查詢null值用 is null 或is not null

 

8五、SQL語句的聚合函數有哪些?

Count:統計行數量              Sum:計算單個列的總和

Avg:計算單個列的平均值        Max:計算單個列的最大值

Min:計算單個列的最小值

 

8六、在分組語句中,查詢的列能夠有哪些?

只能有分組字段列和聚合函數

 

8七、where和having的區別

Where在分組以前執行,因此不能使用聚合函數。Having在分組以後執行,對分組的結果進行條件過濾,只能用聚合函數。

 

8八、描述SQL查詢語句執行順序

第一步:執行FROM

第二步:WHERE條件過濾

第三步:GROUP BY分組

第四步:執行SELECT投影列

第五步:HAVING條件過濾

第六步:執行ORDER BY 排序

 

8九、內鏈接和外鏈接區別

內聯接是指使用比較運算符根據每一個表共有的列的值匹配兩個表中的行。

外聯接是指無論有沒有匹配,被定義了外聯接的表數據都要出如今結果中。

內鏈接:

Select   e.*,d.deptName  from t_employee e,t_dept d where e.deptId=d.id;

Select   e.*,d.deptName  from t_employee e  join  t_dept d on e.deptId=d.id;

外鏈接:

Select   e.*,d.deptName  from t_employee e  left  join  t_dept d on e.deptId=d.id;

 

 

90、如何刪除主表記錄?

因爲有外鍵約束存在,若是主表記錄有從表記錄進行引用,那麼沒法刪除主表記錄。

刪除主表記錄有兩種方式:

級聯刪除,先刪除主表記錄對應的全部從表記錄,而後再刪除主表記錄。

外鍵置空,先將主表記錄對應的全部從表記錄外鍵設置爲null,而後再刪除主表記錄。

 

9一、書寫case when語句

CASE WHEN price>=1000 THEN '高價商品'

WHEN price>=100 AND price < 1000 THEN '中檔商品'

ELSE  '低檔商品' 

END

9二、什麼是JDBC

JDBC是JAVA鏈接數據庫的一套規範。該規範定義了一系列的接口,由數據庫廠商實現,由用戶根據接口調用。用戶根據接口方法就能夠屏蔽不一樣數據庫的差別,不管鏈接什麼數據庫都是一套API。

 

9三、JDBC開發流程

加載驅動

創建鏈接

執行SQL語句

關閉鏈接

 

9四、什麼是SQL注入

SQL注入是指在執行SQL語句時,若是以拼接字符串方式進行值的注入,那麼若是值中有非法字符或數據庫關鍵字時,就會致使執行錯誤或執行結果不正確的狀況。

 

Statement和PreparedStatement的區別

Statement是PreparedStatement的父接口,使用拼接字符串的方式填充SQL語句中的值,因此,當值不一樣的時候,JDBC會從新編譯SQL語句,效率低,並且容易形成SQL注入。

PreparedStatement提供了佔位符方式設置SQL語句,JDBC不會從新編譯SQL語句,並且不管是什麼值都當作字符串處理,不會形成SQL注入。

 

9六、什麼是三層架構

三層架構即:表現層、業務層、持久層。每一層完成即定的功能,層與層之間用接口作耦合。每一層的組件能夠單獨測試,當其中一個組件更換或修改後,不會影響別的層的組件。

持久層:用於完成數據庫相關的操做。採用DAO模式,建立實體類和數據庫表作映射,也就是哪一個類對應哪一個表,哪一個屬性對應哪一個列。而持久層的目的就是完成對象數據和關係數據的轉換。

業務層:用於業務處理。採用事務腳本模式。將一次請求中全部的業務封裝成一個方法,保證方法中全部的數據庫更新操做同時成功,同時失敗。不容許部分紅功,部分失敗,這樣引發數據混亂的狀況發生。

表現層:採用MVC模式。M表示模型,就是實體類,用於數據的封裝和數據的傳輸。V表示視圖,用於展現數據和接收數據。C表示控制,用於調用業務組件,完成業務流程的控制。

書寫單例模式

public class Man {

private static Man m = new Man();

private Man(){}

public static Man getMan(){

return m;

}

}

相關文章
相關標籤/搜索