面試各種知識點雜記

JAVA

  1. next() 與 nextLine() 區別
next():
1、一定要讀取到有效字符後纔可以結束輸入。
2、對輸入有效字符之前遇到的空白,next() 方法會自動將其去掉。
3、只有輸入有效字符後纔將其後面輸入的空白作爲分隔符或者結束符。
next() 不能得到帶有空格的字符串。

nextLine()1、以Enter爲結束符,也就是說 nextLine()方法返回的是輸入回車之前的所有字符。
2、可以獲得空白。
  1. split()函數
用於分割字符串,分割成字符串數組,因此最後結果需要用字符串數組保存。
  1. 初始序列爲1 8 6 2 5 4 7 3一組數採用堆排序,當建堆(小根堆)完畢時,堆所對應的二叉樹中序遍歷序列爲:8 3 2 5 1 6 4 7
    在這裏插入圖片描述
  2. 深拷貝淺拷貝
    深拷貝淺拷貝
    對於引用數據類型來說,引用存在棧中,實際的對象數值是存在堆中,因此淺拷貝是隻複製引用,不復制對象值,如果某一方修改自身屬性,另一方也會被修改。
    深拷貝就是對象和引用所有屬性都會被複制,修改時相互是不會被影響的。
  3. 線程池
  4. 迭代器用法
    迭代器是一個接口,對於Java中的容器,比如ArrayList, LinkedList, 等等,想要遍歷的時候都需要知道其底層實現方式,但是Java爲了方便人們需求,就設置了一個統一的接口,讓人們不需要知道其底層細節,也可以實現遍歷。
  5. 堆和棧的區別?
    首先堆和棧都是用來存儲數據的
    棧裏面存放的是局部變量(也就是方法的成員變量,或者for循環裏面定義的變量),堆裏面存放的是實體(new出來的實體都在堆裏),棧通過引用數據類型去引用堆裏面的實體地址,從而達到賦值的作用;
    因此棧裏面的對象生命週期很短,是隨着方法的消失而消失;堆裏面的對象是會被垃圾回收機制不定時回收;
    棧內存的更新速度快於堆;
    棧的內存需要事先分配,不靈活,但是棧的存取速度快,僅次於CPU中的寄存器;堆可以動態分配內存,比較靈活,但是需要在運行時分配內存,速度比較慢;
    棧在多個線程之間是不共享的,多個線程可以共用一個堆。(線程共用堆和方法區;線程私有棧和計數器)
  6. Java是一個近乎純潔的面向對象編程語言,但是爲了編程的方便還是引入了基本數據類型,但是爲了能夠將這些基本數據類型當成對象操作,Java爲每一個基本數據類型都引入了對應的包裝類型(wrapper class),int的包裝類就是Integer,從Java 5開始引入了自動裝箱/拆箱機制,使得二者可以相互轉換。
    但是String 比較特殊,他可以定義爲String str = new String(“abc”);的形式來創建,也可以用Stringstr = “abc”來創建,String str = new String(“abc”);就是標準的對象操作

計算機網絡

  1. 傳輸層實現端到端的通信,因此,每一個傳輸層連接有兩個端點。那麼,傳輸層連接的端點是什麼呢?不是主機,不是主機的IP地址,不是應用進程,也不是傳輸層的協議端口。傳輸層連接的端點叫做套接字(socket)。根據RFC793的定義:端口號拼接到IP地址就構成了套接字。所謂套接字,實際上是一個通信端點,每個套接字都有一個套接字序號,包括主機的IP地址與一個16位的主機端口號,即形如(主機IP地址:端口號)。例如,如果IP地址是210.37.145.1,而端口號是23,那麼得到套接字就是(210.37.145.1:23)。
    套接字可以看成是兩個網絡應用程序進行通信時,各自通信連接中的一個端點。通信時,其中的一個網絡應用程序將要傳輸的一段信息寫入它所在主機的Socket中,該Socket通過網絡接口卡的傳輸介質將這段信息發送給另一臺主機的Socket中,使這段信息能傳送到其他程序中。因此,兩個應用程序之間的數據傳輸要通過套接字來完成。
  2. http端口:80 https 端口:443
 HTTP狀態碼:
  200 請求成功,一般用於get和post請求;
  201 請求已經被實現,而且有一個新的資源已經依據請求的需要而建立,且其 URI 已經隨Location 頭信息返回。假如需要的資源無法及時建立的話,應當返回 '202 Accepted'202 已經接受請求,但請求並未處理完成;
  301 資源(網頁等)被永久轉移到其它URL
  302 臨時重定向
  304 未修改。所請求的資源未修改,服務器返回此狀態碼時,不會返回任何資源。客戶端通常會緩存訪問過的資源,通過提供一個頭信息指出客戶端希望只返回在指定日期之後修改的資源
  400 客戶端請求語法錯誤,服務器無法理解
  402 保留,將來使用
  403 服務器拒絕訪問,即服務器理解客戶端的請求,但是拒絕提供服務
  404 客戶端請求資源不存在
  408 請求超時
  500 服務器內部錯誤
  501 服務器不支持請求的功能,無法完成請求
  502 作爲網關或者代理工作的服務器嘗試執行請求時,從遠程服務器接收到了一個無效的響應
  503 由於超載或系統維護,服務器暫時的無法處理客戶端的請求。延時的長度可包含在服務器的Retry-After頭信息中 
  1. UDP支持單播、組播和廣播,而TCP不支持廣播。

  2. SYN泛洪攻擊

  3. HTTP協議組成,報頭部分

數據庫

  1. 在視圖上不能完成的操作是( D)A.查詢 B.在視圖上定義新的視圖 C.更新視圖 D.在視圖上定義新的表
  • 視圖是一個虛表,它呈現部分的表,但是不能更改表,用戶也看不到表內部的結構
  • 從用戶角度來說一個視圖是從一個特定的角度來查看數據庫中的數據。從數據庫系統內部來看,一個視圖是由SELECT語句組成的查詢定義的虛擬表。
  1. 更改數據庫某一列的名稱 update 表名稱 set 列名稱=新值

Linux

1.殺死一個進程 kill pid 或者 kill -9 進程號
2. 查找一個進程 ps -ef | grep 進程名稱
3. 壓縮文件 tar
4.

測試

  1. 測試用例包括用例編號、用例類型、前置條件、操作步驟、預期結果、實際結果等
  2. 完整的測試流程包括:閱讀需求(需求評審)–制定測試計劃-- 設計測試用例-- 執行測試(自測或者冒煙)–追蹤測試bug–編寫測試報告–用戶體驗,發佈–項目覆盤
  3. 測試計劃和測試方案區別
  4. 測試計劃什麼時候寫
  5. 對測試工具開發的理解
  6. 對測試的理解
  7. 職業規劃
  8. Xmind(思維導圖):用於編寫測試用例;
    SwitchHosts:host管理利器,用於管理,快速切換host小工具;
    Fidder:抓包工具,將手機的網絡設置成手動代理,連接電腦端的IP與端口,可以抓取手機訪問的URL以及一些參數,注意如果抓取Https請求時,需要安裝Fidder證書,下載方式“電腦IP:端口”。Fidder一般與SwitchHosts聯合使用;
    Git,SourceTree:在gitlab上下載分支,使用sourceTree切換分支。
    Xshell:訪問遠端的服務器,主要進行一些日誌的查看,學會日誌查看的相關命令,如tail/grep等
  9. 測試用例並不是越多越好,覆蓋即可,因此此題的測試用例爲
    a>1 或者a=1(語句覆蓋:測試代碼的每個可執行語句是否被執行到了)
    &&的情形全覆蓋叫條件覆蓋,判斷覆蓋只需要覆蓋if語句
    在這裏插入圖片描述
  10. 單元測試的策略:邏輯覆蓋、 循環覆蓋、同行評審、桌前檢查、 代碼走查、代碼評審、 景泰數據流分析
    程序數據流分析是代碼審查的一部分,用數據流圖來做。
  11. 單元測試,詳細設計文檔
    集成測試,概括設計文檔
    系統測試,系統設計文檔
  12. 軟件測試一般分α、β、λ三個階段,α是第一階段,一般只供內部測試使用;β是第二個階段,已經消除了軟件中大部分的不完善之處,但仍有可能還存在缺陷和漏洞,一般只提供給特定的用戶羣來測試使用;λ是第三個階段,此時產品已經相當成熟,只需在個別地方再做進一步的優化處理即可上市發行。
  13. 白盒測試
    白盒測試方法:條件覆蓋,語句覆蓋,判定覆蓋,路徑覆蓋
    黑盒測試方法:等價類劃分,邊界值,判定表,因果圖,正交分解法。

項目

1.選型?爲什麼用樹莓派;
2.時域,
在這裏插入圖片描述
時域反應的是時間和信號的關係,頻域反應的是頻率和信號的關係。
在頻域中可以更能觀察到頻率的波動,變化
他們是通過傅里葉變化進行轉換的
3.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章