面试经历---YY欢聚时代

YY欢聚时代一年多前去面试过一次,当时鄙视了,在现在的公司呆了1年半了,感觉做得很不爽,而且薪资又不满意,所以想找个新工作,就想去YY面试。

下面将两次YY面试的经历写出来,包括一次初试和一次复试的面试题目。

一、2015年11月21日上午初试的面试题如下:

1.   做一下自我介绍

画出正在做的B2B平台的架构图,包括各子系统(ec,buyer,seller,message,order)、SOA(dubbo)、缓存Redis、消息rabbitmq、单点登陆CAS、负载均衡nginx,MySQL数据库读写分离,邮件服务器postfix

2.   单点登陆的原理

3.   如何防止cookie被盗用

4.   Cookie和Session的区别

5.   Session共享及其好处

6.   Mysql主从数据同步的方式

7.   spring 控制器的加载过程

8.   Spring 实例是单例还是多例?会不会有线程问题

9.   如何进行跨机房数据同步?如何保证数据访问的一致性

10. 数据库索引有什么好处?

11. Mysql如何查看执行计划?

12. Mysql执行计划的的顺序

13. 如何查看Mysql中SQL执行的快慢?

14. SQL执行过程net和wait for table的区别?

15. IO与NIO的区别?NIO中select的原理?NIO缓冲区的默认大小?

16. 使用什么数据库连接池?连接池的工作 原理?常用连接池C3PO,proxool与JNDI的区别?

17. 缓存redis如何应对系统崩溃后的快照问题?

18. Redis的默认键大小是多少?

19. 线程中sleep与wait的区别?

20. Restful与dubbo的对比?


二、2015年11月25日下午复试的题目

1.IO和NIO的区别和原理?

引用
(1)    IO是面向流的,NIO是面向缓冲区的

Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。此外,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区。 Java NIO的缓冲导向方法略有不同。数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动。这就增加了处理过程中的灵活性。但是,还需要检查是否该缓冲区中包含所有您需要处理的数据。而且,需确保当更多的数据读入缓冲区时,不要覆盖缓冲区里尚未处理的数据。

(2)    阻塞与非阻塞IO

Java IO的各种流是阻塞的。这意味着,当一个线程调用read() 或 write()时,该线程被阻塞,直到有一些数据被读取,或数据完全写入。该线程在此期间不能再干任何事情了。 Java NIO的非阻塞模式,使一个线程从某通道发送请求读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用时,就什么都不会获取。而不是保持线程阻塞,所以直至数据变的可以读取之前,该线程可以继续做其他的事情。 非阻塞写也是如此。一个线程请求写入一些数据到某通道,但不需要等待它完全写入,这个线程同时可以去做别的事情。 线程通常将非阻塞IO的空闲时间用于在其它通道上执行IO操作,所以一个单独的线程现在可以管理多个输入和输出通道(channel)。

(3)    使用单线程Selector来管理多个通道,减少系统开销


参考:http://blog.csdn.net/brushli/article/details/50494037

猜你喜欢

转载自rd-030.iteye.com/blog/2340113
yy
今日推荐