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

网友投稿 864 2022-05-29

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

情景回顾

时间:2016.9.24 10:00-12:00

地点:山东省网络环境智能计算技术重点实验室

事件:搜狐畅游笔试

注意事项:要有大局观,该舍弃的还是要舍弃,不要在一道编程题上占用超过30分钟的时间。当你思考了15分钟,还没有好的解决方式的时候,毅然舍弃!

搜狐畅游最后一部分居然是游戏相关的题目,一头雾水,自己只做了45分钟交卷。

涉及到的知识点如下,仅供参考。

常用的编程技巧;

对Spring IOC与AOP的理解;

详见博文《J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC 与AOP》。

查找10亿随机数字中重复出现次数前100的数字,并写出最优算法,说明算法复杂度;

观察者设计模式

详见博文《大话设计模式(五)观察者模式》。

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

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

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