剑指Offer——搜狐畅游笔试题+知识点总结

网友投稿 847 2022-05-29

剑指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

剑指Offer——搜狐畅游笔试题+知识点总结

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小时内删除侵权内容。

上一篇:C++类的this指针,静态成员,友元函数友元类
下一篇:kerberos认证机制介绍
相关文章