查看全部30105条面经
匿名用户
面试了职位:Java
面试未通过
整体感受:很好
面试难度:巨难
Java题目面试分享
1.说一下你对spring的理解(aop和ioc) IoC(Inversion of Control) (1). IoC(Inversion of Control)是指容器控制程序对象之间的关系,而不是传统实现中,由程序代码直接操控。控制权由应用代码中转到了外部容器,控制权的转移是所谓反转。 对于Spring而言,就是由Spring来控制对象的生命周期和对象之间的关系;IoC还有另外一个名字——“依赖注入(Dependency Injection)”。从名字上理解,所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,即由容器动态地将某种依赖关系注入到组件之中。 (2). 在Spring的工作方式中,所有的类都会在spring容器中登记,告诉spring这是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由 spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。 (3). 在系统运行中,动态的向某个对象提供它所需要的其他对象。 (4). 依赖注入的思想是通过反射机制实现的,在实例化一个类时,它通过反射调用类中set方法将事先保存在HashMap中的类属性注入到类中。 总而言之,在传统的对象创建方式中,通常由调用者来创建被调用者的实例,而在Spring中创建被调用者的工作由Spring来完成,然后注入调用者,即所谓的依赖注入or控制反转。 注入方式有两种:依赖注入和设置注入; IoC的优点:降低了组件之间的耦合,降低了业务对象之间替换的复杂性,使之能够灵活的管理对象。 AOP(Aspect Oriented Programming) (1). AOP面向方面编程基于IoC,是对OOP的有益补充; (2). AOP利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了 多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即方面。所谓“方面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的 逻辑或责任封装起来,比如日志记录,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。 (3). AOP代表的是一个横向的关 系,将“对象”比作一个空心的圆柱体,其中封装的是对象的属性和行为;则面向方面编程的方法,就是将这个圆柱体以切面形式剖开,选择性的提供业务逻辑。而 剖开的切面,也就是所谓的“方面”了。然后它又以巧夺天功的妙手将这些剖开的切面复原,不留痕迹,但完成了效果。 (4). 实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码。 (5). Spring实现AOP:JDK动态代理和CGLIB代理 JDK动态代理:其代理对象必须是某个接口的实现,它是通过在运行期间创建一个接口的实现类来完成对目标对象的代理;其核心的两个类是InvocationHandler和Proxy。 CGLIB代理:实现原理类似于JDK动态代理,只是它在运行期间生成的代理对象是针对目标类扩展的子类。CGLIB是高效的代码生成包,底层是依靠ASM(开源的java字节码编辑类库)操作字节码实现的,性能比JDK强;需要引入包asm.jar和cglib.jar。 使用AspectJ注入式切面和@AspectJ注解驱动的切面实际上底层也是通过动态代理实现的。 (6). AOP使用场景: Authentication 权限检查 Caching 缓存 Context passing 内容传递 Error handling 错误处理 Lazy loading 延迟加载 Debugging  调试 logging, tracing, profiling and monitoring 日志记录,跟踪,优化,校准 Performance optimization 性能优化,效率检查 Persistence  持久化 Resource pooling 资源池 Synchronization 同步 Transactions 事务管理 另外Filter的实现和struts2的拦截器的实现都是AOP思想的体现。
一月前 发布

相关推荐

余先生
面试了职位:Java
感觉靠谱
一面我收到了笔试通知
我收到了笔试通知。在笔试的模拟测试中,共有2种类型的题目:不定项选择题26分,填空题24分。囊括的知识点很广,有linux,操作系统(页面替换题,进程线程),数据结构,计算机网络记录此轮面试过程或感受在正式笔试的时候,考的跟模拟题完全不一样!可能因为我是软件测试而不是测试开发,所以在正式考试的时候没有编程题,50分的不定项,50分的填空。而且知识点都是一些理论,比如瀑布模型之类的比较。所以笔试不出我意料的跪了...查看更多
3天前 发布
匿名用户
面试了职位:Android
感觉没戏
我说一下我第一次面试
我说一下我第一次面试失败的经历。我将会分四个部分来说,首先是我招聘的公司要求,其次是我面试前的准备情况,然后是招聘过程的一些提问和我的回答,最后是我的总结反思。首先要说一下这家公司的岗位要求,他要求计算机、电子等专业的学生,同时只要热爱IT行业,对软件研发有浓厚兴趣就可以,热爱编程,熟练掌握C/C++/JAVA。如果英语好,有更多的优质资源等你。踏实、责任心、善于学习总结,有较强的沟通协调能力、团队精神其次是我的准备情况关于自我介绍这部分:我首先大量资料显示自我介绍要贴合人家岗位要求来说,并且不能说流水账,比如把简历念一遍。其次要通过事例说明你做了什么?是怎么做的?来彰显你的能力。我在大学期间非常用心去做的只有一个比赛,是恩智浦杯智能汽车大赛,因此我在自我介绍这部分说到了我自己的准备过程中遇到的问题以及解决的过程,想要凸显自己沟通交流的能力。其次说到了我大学期间去英语角练口语的事情,想要凸显自己口语还不错。自我介绍以外的部分:我特地去理顺了我做的恩智浦杯比赛,包括要实现什么功能,以及我是怎么实现这些功能的。然后还包括我对企业的了解、自己的优缺点等。最后关于视频面试时要注意的一些问题我也注意了。面试过程的提问与回答自我介绍:面试官上来先跟我确认了一下声音是否清晰,然后就让我开始自我介绍。我刚开始有点卡壳,面试官立马笑着提醒我不要紧张。我说完后,面试官针对我的介绍先问了我关于做的项目。问:他说他最想了解的是我主要做了什么,包括程序调试部分,我真正自己做了什么。答:我回答的有点卡壳,说到了平衡车的功能,以及我自己要写哪部分的程序问:你大概讲一下,或者挑一个你印象比较深刻的地方去讲。答:我讲了平衡车程序大体执行的流程,然后说了我负责的部分,以及平衡车运行的程序原理问:你简历上写了你平衡车的车速是2.2m/s,你们速度是怎样确定的?答:(错误的回答)用赛道全长/所用时间问:我问的是你的速度怎么通过调试来确定的?答:我说了平衡车在保持平衡的情况下往前跑的倾角来确定速度(这一次回答让他满意了)问:问我还做过其他的比赛吗?答:我做过点餐软件,我负责控制特效问:你只是加了简单的处理,那么在模型方面有没有什么特别的处理呢?答:我没有,那不是我的工作,我负责对餐厅模型的移动控制问:那么你在什么平台上的什么语言做的?答:(错误回答)我在unity平台上用的是C#语言做的问:我问的是你的编程平台答:我用的是visual studio2010(中肯的回答)问:这软件在什么平台运行呢?答:安卓手机平台问:你对所申请的BSP/MCU软件开发岗位有什么理解?答:我对MCU比较熟悉,大学做过一些单片机的比赛(感觉回答的也不对,我应该说MCU就我的理解来说是通过写程序做单片机开发的)面试的总结反思:客观的来说,面试官主要是针对我的自我介绍部分进行提问,但也不会全问,只有公司需要的能力才问。我发现面试官应该只是个高技术的,所以像什么英语他根本没问。面试就像聊天,太客套反而不自然。对于我做的平衡车项目,我说的逻辑稍微有点乱,但基本上能讲清楚,不过中间有两次答非所问。对于我所做工作,我说的不够清晰。他为什么要问我有没有做过其他比赛?我觉得他已经对我形成了一定的想法,比如我没有表达清楚我所做的事情的重要过程,所以想再问我一些其他的比赛来确定他对我的看法。但是从他问我所做软件的一些问题可知道他们可能更需要做软件方面的能力的人。我所能给自己的评价就这些了,希望大家能够从局外人的角度给我一些分析。...查看更多
1个问题,0条回答
Q:首先要说一下这家公司的岗位要求,
三周前 发布
匿名用户
面试了职位:Java
感觉没戏
1.问项目情况,问的
1.问项目情况,问的比较细,面试官会根据项目现场出题,问如何实现?穿插问中间件和基础原理2.Redis如何做分布式锁?redis的并发竞争Key问题如何解决?redis缓存与数据库一致性问题?介绍下一致性hash3.Synchronized和Lock的区别?说一下AQS?分析线程池的实现原理和线程的调度过程?如果一个对象多个方法加了synchroized,那么对象有几把锁?4.说一下MVCC?数据库调优的思路?介绍一下mysql的回表和覆盖索引?MySQl innoDB存储的文件结构?索引树是如何维护的?自增主键ID用完了怎么办?5.Kafka怎么保证消息的顺序性?zookeeper的工作流程?讲一下Zab算法?6.JVM垃圾回收机制?何时触发MinorGC操作?新生代和老年代回收策略?Eden和Survivor的比例分配?jvm性能调优?jstack的使用?9.nio与aio的区别以及各自的作用?10.java8之后的ConcurrentHashMap11.Dubbo的底层实现原理和机制?dubbo有哪几种负载均衡策略?12.Spring AOP和IOC的实现?动态代理的几种方式?反射的原理?13.分布式系统怎么做服务治理?14.接口如何实现幂等性?15.开放性问题:如何提高系统的QPS16.算法题:链表中环的入口节点17.算法题:判断链表是否有环18.算法题:实现二叉树先序,中序,后序遍历19.你来百度能给百度带来什么样的价值?你如何和产品经理进行沟通?假如你和其他研发技术方案不一致,如何解决?...查看更多
三周前 发布
匿名用户
面试了职位:高级管理职位
感觉靠谱
百度内容运营面试一二面分享
🌼一面:直属leader1⃣️自我介绍2⃣️优缺点优点突出岗位核心素质,缺点可以选择较小的,责任心缺失这种的就别说了3⃣️为什么选择该岗位?职业意向+有相关能力和经历4⃣️岗位认识参考前面笔记里提的对岗位和公司的了解5⃣️有什么要问面试官的最后的加分项。面试时面试官会告诉你工作内容,如果说的不是很清楚,可问一下具体工作内容(逻辑是:我理解的工作内容是xxx,请问还有哪些具体的工作内容).🌼二面:负责人1⃣️自我介绍2⃣️是否是XXapp的用户,以用户的角度觉得有什么可完善的地方这也是前面笔记提到的,刷app也是面试准备的内容3⃣️当前互联网以及该app的热梗和热点有哪些检测你互联网热点的敏锐度,是内容运营很需要的素质4⃣️大家都反对,你却坚持的事逻辑:为什么反对+为什么不采取其他人意见+做了什么+最后成果5⃣️介绍下曾举办的一个活动逻辑:什么事+做了什么+遇到什么问题+怎么解决+最后成果6⃣️职业规划7⃣️你认为在工作中有哪些数据具有参考性这个我觉得没回答好,当时就说了点赞量,实际上赞展比、评展比、用户点击调起率都是很重要的数据8⃣️有哪些兴趣爱好?当时提到跳舞,还跟面试官探讨起来,所以氛围超愉快9⃣️这应该是你投的第一个实习,没有太多实习经验,你觉得自己有哪些优势这是我的实际情况,我的回答是:为什么在此之前没有实习(制定了规划,在本科阶段更注重学习,同时在各种项目和学生工作中来提高自己的能力,虽然没有相关实习,但有丰富的与工作内容相关的其他经历)+为什么现在投这个实习+我的优势...查看更多
一月前 发布