題目來自牛客網真題 傳送門
1.

知識點:Java隻能直接繼承自一個父類,即隻支援單重繼承,而可以實作多個接口。
2.
知識點:
-
Java建立線程有三種方式:
1.繼承 Thread 類,重寫 run() 方法;
2.實作 Runable 接口,重寫 run() 方法;
3.使用Callable和Future接口建立線程。
參考:
java 多線程總結(一) 建立線程的幾種方法及對終止線程運作的讨論 - 線程間通信所使用的方法wait , notify , notifyAll 是Object類提供的方法:
- wait(): 将目前線程加入到等待隊列中,等待其他線程調用notify或者notifyAll來喚醒。
- notify(): 喚醒在等待隊列中等待的單個線程. 如果多個線程都是在等待隊列中等待, 則随機喚醒一個.
- notifyAll(): 喚醒所有在等待隊列中等待的所有線程。
關于第二個選項後續補充
3.
知識點:onSaveInstanceState()方法隻有在activity異常終止(如:螢幕旋轉)時才會調用。當Activity異常終止時,系統會調用onSaveInstanceState()方法來儲存目前Activity的狀态(調用發生在onStop() 之前);當Activity被重建之後,系統調用onRestoreInstanceState()方法來恢複Activity的狀态(調用發生在onStart()之後)。
4.
知識點:Activity被強制關閉(即異常情況下),系統會自動調用onSaveInstanceState()方法和onRestoreInstanceState()方法,儲存和恢複UI狀态。
5.
知識點:程序死鎖:如果多個程序同時占有對方需要的資源而同時請求對方的資源,而它們在得到請求之前不會釋放所占有的資源,那麼就會導緻死鎖的發生,也就是程序不能實作同步。
題目分析:要保證無論如何都不發生死鎖,就要從極端情況考慮:當四個并發程序都占有了4個資源時,再加上一個資源,就能保證至少有一個程序可以獲得5個資源,進而保證不會發生死鎖。即:4*4+1=17個。
6.
參考部落格:
tcp關閉狀态詳解盜了一張圖
7.
題目分析:正常思路分析的話,可以從最後一個入棧元素入手,分以下情況讨論:
- 4××× 若最後一個元素第一個出棧,說明前面入棧的元素都沒有出棧,是以隻有一種出棧序列:4321。
- ×4×× 若最後一個元素第二個出棧,說明前面入棧的元素有兩個沒有出棧,并且其出棧順序固定,是以有三種出棧序列:1432,2431,3421。
- ××4× 若最後一個元素第三個出棧,則其前面出棧的兩個元素順序不定,是以有6種出棧序列:1243,2143,1342,3142,2341,3241。
- ×××4 若最後一個元素最後出棧,即最後一個元素對前三個元素的入棧和出棧沒有任何影響,那麼就可以用這個思路對 123 這個序列進行分析,将3作為最後一個入棧的元素,依次類推。有三種出棧序列:3214,2314,1234,2134。
特别說明:題目滿足
卡特蘭數,可用公式
計算。即
=
= 14。
8.
答案有争論,後續整理更新
9.
知識點:^ 會比對行或者字元串的起始位置;[^] 表示不接受該字元集合;
+ 表示重複1次及以上(1~n);
* 表示重複0次及以上(0~n);
? 表示重複0次或1次;
題目分析:^d表示以 d 開頭,d+ 表示d重複至少一次,[^d] +表示任意不含d的字元串。
10.
題目分析:第一次查找 (0+10)/2 = 5 下标為5的數:50<90;
第二次查找(6+10)/2=8 下标為8的數:90 。
11.
題目分析:根據前序周遊(中左右)序列可知,A為根節點,接下來看中序周遊(左中右)序列,則DBGE為左子樹,CHF為右子書;接下來,看左子樹的前序周遊序列:BDEG,是以左子樹的根節點為B,那麼左子樹的左孩子和右子樹分别為D和GE;接着看右子書的前序周遊序列:CFH,是以右子書的根節點為C,那麼右子樹的右子樹為FH;以此類推即可得該二叉樹。
12.
知識點:FileInputStream和FileOutputStream可以對檔案進行讀寫;BufferReader和BufferWriter帶緩存,也可以對檔案進行讀寫。
13.
知識點:Last-Modified 标示這個響應資源的最後修改時間。
Etag web伺服器響應請求時,告訴浏覽器目前資源在伺服器的唯一辨別。
14.
知識點: between 關鍵字是一個閉區間。
< | < |
---|---|
<= | <= |
> | > |
>= | >= |
15.
16.
知識點:shell函數在調用時直接寫函數名,不帶括号。
shell中函數的定義和使用17.
awk用法:awk 'BEGIN{執行前語句}{每一行執行的語句}END{所有行執行完後執行的語句}'
執行個體:累加每行第一列數字
awk 'BEGIN{sum=0}{sum+=$1}END{print sum}'
也可以省略BEGIN
awk '{sum+=$1}END{print sum}'
18.
- GET請求送出參數有長度限制,而POST沒有長度限制;
- POST方式比GET安全,因為GET方式所發送的資料是URL的一部分,而POST參數不會被儲存在浏覽器曆史或web伺服器日志中。
19.
20.
知識點:常用的布局優化方式有:
- 使用include标簽實作布局重用,例如自定義的ToolBar;
- 使用merge标簽減少不必要的嵌套,用于除去沒有background等屬性的外層FrameLayout;
- ViewStub标簽實作延遲加載。
推薦一篇部落格:
一些你需要知道的布局優化技巧21.
22.
- TCP是面向連接配接的,而UDP是無連接配接的;
- TCP提供可靠的服務,UDP盡最大努力傳遞,即不保證可靠傳遞;
- TCP隻支援點對點,UDP支援一對一、一對多、多對多的互動通信;
23.
24.
題目分析:
- C選項表示從表中查找有課程成績大于80的學生姓名(不是所有課程成績大于80);
- D選項表示查找最低分數大于80的學科(将 sub_name 改為 stu_name 即為正确)。
25.
題目分析:對于這個題,隻需要知道靜态塊最先執行就可以得出答案。
測試部落格:
特地寫了兩個簡單的類進行了測試