大概总结了最近面试时候遇到的Spring的问题
1Spring的两个特点。Aop如何实现面向切面编程?
2Spring ioc是什么,和工厂模式的区别?
3Spring MVC和Structs2区别?
面试的时候我说,ioc解耦了,面试官说工厂模式也解耦了,我说依赖倒置了,面试官说工厂模式不是吗?我说减少书写的繁杂,直接配置就好了,面试官说,那我工厂模式,依次创建类有什么不行呢,都把他放在一个包里,也挺好管理啊,你配置的时候不是一样也得挨个写吗?我后来没有说的了,面试官就笑了,反正也没告诉我答案。我觉得我是太一知半解了,没有一点深入的了解。
我之前从来没想过ioc和工厂模式的区别,惭愧。回来后自己写了写工厂模式的demo,然后又配置了下Spring的bean,上网查了下资料,大概了解了下,应该是这样的。他说的挺对的,但是最大的区别就是,如果你用工厂模式的话,如果添加或者修改每个类,你就要重新启动服务器,这对用户体验很不好,但是Spring就完美的解决了,而IoC只需 要将class属性改变一下,并且由于IoC利用了Java反射机制,这些对象是动态生成的,这时我们就可以热插拨对象(不必把原程序停止下来重新编译布署),这句话是我扒的。还有就是ioc她解耦的很彻底,你用工厂模式话,多多少少还会有间接的联系。
我觉得在面试中,虽然会问Spring但是问的也基本是你对他的理解和一些固定的东西,我觉得自己的理解真的很考验一个人,说到什么程度一下子就暴露出来你到底理解什么样子。
从Spring中引来的知识点还有反射和动态代理,我问下自己,确实不是融会贯通。最近的编程题总是反转链表,约瑟夫环,还有递归和非递归方法的使用。