劍指Offer——搜狐暢游筆試題+知識點總結
劍指Offer——搜狐暢游筆試題+知識點總結
情景回顧
時間:2016.9.24 10:00-12:00
地點:山東省網絡環境智能計算技術重點實驗室
事件:搜狐暢游筆試
注意事項:要有大局觀,該舍棄的還是要舍棄,不要在一道編程題上占用超過30分鐘的時間。當你思考了15分鐘,還沒有好的解決方式的時候,毅然舍棄!
搜狐暢游最后一部分居然是游戲相關的題目,一頭霧水,自己只做了45分鐘交卷。
涉及到的知識點如下,僅供參考。
常用的編程技巧;
對Spring IOC與AOP的理解;
詳見博文《J2EE進階(十四)超詳細的Java后臺開發面試題之Spring IOC 與AOP》。
查找10億隨機數字中重復出現次數前100的數字,并寫出最優算法,說明算法復雜度;
觀察者設計模式
詳見博文《大話設計模式(五)觀察者模式》。
package cn.edu.ujn.practice; import java.util.List; import java.util.ArrayList; public class Test_Of_Publish_Subcribe { /** * @param args */ public static void main(String[] args) { Subject sj = new ConcreteSubject(); Observer ob = new ConcreteObserver(); sj.attach(ob); sj.notifyObserversByPush("Hello"); sj.notifyObserversByPull(); } } interface Subject{ // 添加訂閱者 public void attach(Observer ob); // 刪除訂閱者 public void detach(Observer ob); // 以推方式通知訂閱者 public void notifyObserversByPush(String str); // 以拉方式通知訂閱者 public void notifyObserversByPull(); } interface Observer{ // 推模式 public void updateByPush(String str); // 拉模式(注意參數為接口) public void updateByPull(Subject s); } class ConcreteSubject implements Subject{ List
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
附 群碩筆試題
1.同一進程的多線程共享那些資源?
線程共享的環境包括:進程代碼段、進程的公有數據(利用這些共享的數據,線程很容易的實現相互之間的通訊)、進程打開的文件描述符、信號的處理器、進程的當前目錄和進程用戶ID與進程組ID。
PCB、堆
2.Http中get與post的區別?
Http get與post的區別
1.GET請求的數據會附在URL之后(就是把數據放置在HTTP協議頭中),以?分割URL和傳輸數據,參數之間以&相連,如: login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果數據是英文字母/數字,原樣發送,如果是空格,轉換為+,如果是中文/其他字符,則直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX為該符號以16進制表示的ASCII。
POST把提交的數據放置在是HTTP包體中。
2.GET方式提交的數據最多只能是1024字節(因為GET是通過URL提交數據,那么GET可提交的數據量就跟URL的長度有直接關系了。而實際上,URL不存在參數上限的問題,HTTP協議規范沒有對URL長度進行限制。這個限制是特定的瀏覽器及服務器對它的限制。IE對URL長度的限制是2083字節(2K+35)。對于其他瀏覽器,如Netscape、FireFox等,理論上沒有長度限制,其限制取決于操作系統的支持。),理論上POST沒有限制,可傳較大量的數據。
3.在ASP中,服務端獲取GET請求參數用Request.QueryString,獲取POST請求參數用Request.Form。在JSP中,用request.getParameter(\”XXXX\”)來獲取,雖然jsp中也有request.getQueryString()方法,但使用起來比較麻煩,比如:傳一個test.jsp?name=hyddd&password=hyddd,用request.getQueryString()得到的是:name=hyddd&password=hyddd。
4.POST的安全性要比GET的安全性高。比如:通過GET提交數據,用戶名和密碼將明文出現在URL上,因為 (1)登錄頁面有可能被瀏覽器緩存; (2)其他人查看瀏覽器的歷史紀錄,那么別人就可以拿到你的賬號和密碼了;
(3)除此之外,使用GET提交數據還可能會造成Cross-site request forgery攻擊。
3.MVC設計模式的含義,各層的作用。
4.計算第10001個質數。
package cn.edu.ujn.practice; /** * * @author SHQ * *前6個質數為:2,3,5,7,11,13,那第6個質數為13,求第10001個質數 * */ public class test { public static void main(String[] args) { System.out.println(resolution(10001)); } private static Long resolution(int num){ if (num <= 0) return null; else if(num == 1) return (long)2; else{ int cnt = 1; Long init = (long) 3; Long result = null; while(cnt < num){ if(isPrimeNumber(init)){ result = init; cnt++; } init += 2; } return result; } } /** * 判斷是否是素數 * * @param n * @return */ private static boolean isPrimeNumber(Long n) { if (n < 2) { return false; } double max = Math.sqrt(n); for (int i = 2; i <= max; i++) { if (n % i == 0) { return false; } } return true; } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
HTTP iOS
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。