网易Java社招经历分享
继续把自己的面试网易的经历分享出来,希望对大家有所帮助:
1、Spring cloud相关:
(1)Eureka服务注册发现,对比其他组件。
(2)Hystrix熔断与降级。
2、JVM相关:
(1)说说GC的流程,相关的算法之类的。
3、调优的手段,单个接口,前端也要。
4、输入地址回车之后,做了哪些?
5、如果你会前端,还会问dom树怎么构建?
6、SpringMVC的接口,从请求到响应,做了什么?dispatchservelet是怎么工作的?
(1)请求发送到DispatcherServlet.
(2)通过HandleMapping,解析获取到请求对应的Handler.
(3)HandlerAdapter适配器,根据Handler调用真正的处理器处理请求,并开始真正业务逻辑。
(4)上一步处理完后返回一个ViewAndModel对象,Model是返回的数据对象,View是个逻辑上的View.
(5)ViewResolver会根据逻辑View查找实际的View.
(6)将Model传给实际的View,然后将View返回给请求者。
7、BEAN的生命周期
(1)应用启动的时候检查加载需要被Spring管理的bean.
(2)根据实现的接口,依次设置beanName,BeanFactory,ApplicationContext应用上下文。
(3)根据实现的接口,依次调用加载前,设置值,自定义初始化方法,加载完成后。
(4)bean已经可以用了,存活直到上下文也被销毁。
(5)销毁的时候调用destroy方法和自定义的销毁方法。
8、事务隔离级别:延伸到实现原理
(1)读未提交。
(2)读已提交。
(3)可重复读:MVCC。
(4)串行化:整表加锁。
9、ArrayList 和LinkedList的区别:java集合类相关的东西
(1)arraylist底层是数组,LinkedList是链表。
(2)由于底层实现的原因,ArrayList随机取数可以用下标获取,速度很快,尾部插入数据也较快。(扩容的时候除外,因为扩容可能会触发数组的重新拷贝分配内存)
(3)LinkedList因为是一个双向链表,所以是有序的,在任意位置的数据插入较快,随机但是随机取数比较慢。
10、创建线程的方式:延伸至优劣,底层实现
(1)Runnable接口。
(2)继承Thead类。
(3)实现Callable接口。
(4)线程池获取:ThreadPoolExecutor.
11、线程同步的手段。
#网易##社招##Java工程师##面经#