32分钟的电话面试
前端后端是如何通信的?
二进制,序列化的东西怎么传?
讲一下具体负责的东西?
SSM是什么的框架?整合SSM时做了什么事情?
IOC是什么?IOC实现原理?如何实现一个IOC?
- IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。
IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。比如对象A需要操作数据库,以前我们总是要在A中自己编写代码来获得一个Connection对象,有了 spring我们就只需要告诉spring,A中需要一个Connection,至于这个Connection怎么构造,何时构造,A不需要知道。在系统运行时,spring会在适当的时候制造一个Connection,然后像打针一样,注射到A当中,这样就完成了对各个对象之间关系的控制。A需要依赖 Connection才能正常运行,而这个Connection是由spring注入到A中的,依赖注入的名字就这么来的。那么DI是如何实现的呢? Java 1.3之后一个重要特征是反射(reflection),它允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性,spring就是通过反射来实现注入的。
举个简单的例子,我们找女朋友常见的情况是,我们到处去看哪里有长得漂亮身材又好的女孩子,然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想办法认识她们,投其所好送其所要,这个过程是复杂深奥的,我们必须自己设计和面对每个环节。传统的程序开发也是如此,在一个对象中,如果要使用另外的对象,就必须得到它(自己new一个,或者从JNDI中查询一个),使用完之后还要将对象销毁(比如Connection等),对象始终会和其他的接口或类藕合起来。
- 实现IOC的步骤
定义用来描述bean的配置的Java类
解析bean的配置,將bean的配置信息转换为上面的BeanDefinition对象保存在内存中,spring中采用HashMap进行对象存储,其中会用到一些xml解析技术
遍历存放BeanDefinition的HashMap对象,逐条取出BeanDefinition对象,获取bean的配置信息,利用Java的反射机制实例化对象,將实例化后的对象保存在另外一个Map中即可。
牛客网Java面试宝典有没有遇到系统瓶颈之类的东西?
开发时有没有遇到过什么问题?
很多页面同时访问,服务器撑不住怎么办?
接入网关?为什么信任客户端的请求?(我说了HTTPS,基于SSL/TLS)SSL、TLS是什么?
源头里面做了修改,比如要查询a,改成了查询b,在通过https访问后端,怎么知道是不是篡改过?
有没有遇到过HTTP队首阻塞的问题?
提升访问性能的办法,比如数据库优化什么的?(我回答数据库主从分离)
数据库主从分离怎么保持数据库一致性?
跨表查询的思想和做法?
说一下做过的最有挑战的工作或难题?
HTTP为什么要三次握手、四次挥手
什么是滑动窗口?
算法题:如何判断一个链表有环?
最优解法是使用快慢指针,快指针一次向下移动两位,慢指针一次向下移动一位,若链表有环,则快指针最终会赶上慢指针,该解法不需要额外空间。