劍指Offer——搜狐暢游筆試題+知識點總結

      網友投稿 1001 2022-05-29

      劍指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 list = new ArrayList(); private String name = "demo"; private int age = 10; public String getName(){ return name; } public int getAge(){ return age; } // 添加訂閱者 public void attach(Observer ob){ if(!list.contains(ob)) list.add(ob); } // 刪除訂閱者 public void detach(Observer ob){ if(list.contains(ob)) list.remove(ob); } // 以推方式通知訂閱者 public void notifyObserversByPush(String str){ for(Observer o : list){ o.updateByPush(str); } } // 以拉方式通知訂閱者 public void notifyObserversByPull(){ for(Observer ob : list){ ob.updateByPull(this); } } } class ConcreteObserver implements Observer{ // 推模式 public void updateByPush(String str){ System.out.println(str); } // 拉模式 public void updateByPull(Subject s){ String name = ((ConcreteSubject)s).getName(); System.out.println(name); } }

      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小時內刪除侵權內容。

      上一篇:Python 并發編程之 Threading 模塊
      下一篇:程序員筆記——如何編寫優雅的Dockerfile
      相關文章
      亚洲性无码av在线| 亚洲卡一卡二卡乱码新区| 亚洲综合色在线观看亚洲| 亚洲精品成人片在线观看| 亚洲精品一品区二品区三品区| 中文字幕亚洲第一在线| 亚洲自偷自偷在线成人网站传媒| 亚洲国产精品久久网午夜| 亚洲第一网站免费视频| 久久精品国产亚洲av天美18| 亚洲经典千人经典日产| 日韩亚洲变态另类中文| 亚洲1区2区3区精华液| 亚洲av无码精品网站| 亚洲AV无码国产在丝袜线观看| 久久精品国产亚洲AV麻豆网站| mm1313亚洲精品无码又大又粗| 亚洲婷婷天堂在线综合| 亚洲AV无码专区在线电影成人| 丁香亚洲综合五月天婷婷| 国产亚洲欧洲Aⅴ综合一区| 亚洲精品无码少妇30P| 久久青青草原亚洲AV无码麻豆| 亚洲毛片αv无线播放一区| 亚洲中文字幕日本无线码| 亚洲白色白色在线播放| 亚洲线精品一区二区三区| 亚洲av乱码一区二区三区| 国产V亚洲V天堂无码| 亚洲人成网站在线播放vr| 亚洲av永久无码精品网站| 久久夜色精品国产噜噜亚洲AV| 4444亚洲国产成人精品| 亚洲乱码日产精品BD在线观看| 亚洲最大的黄色网| 亚洲av最新在线观看网址| 亚洲精品乱码久久久久久蜜桃| 永久亚洲成a人片777777| 无码乱人伦一区二区亚洲| 亚洲理论片在线中文字幕| 亚洲自偷自偷在线成人网站传媒|