阿里巴巴蚂蚁电话面试

时间:2018.7.25

java开发

校招内推

 

说起来你们可能不信,一个月之内,加上这次我已经面了4次阿里,这是第4次,已经挂了3个,之前还面过一次蚂蚁,这次还是蚂蚁,不过都是一面,4次加起来和阿里面试官通话近3个小时。

这次面试最久,整个过程持续了1小时8分钟。

 

自我介绍   说下学习经历,项目经历,实习经历(我说了一大堆,停不下来 并且说了学习计划和自己看的书籍)

说下数组和链表

说下栈和队列  (说了各种比喻和应用场景    说了递归调用的压栈、弹栈的过程)

栈是不是线程安全的?   (之前没有看Stack源码,面试完点进去看才知道是线程安全,gg)

说下HashMap底层实现   (就那一大堆,解说源码)

如果不用HashMap,实现线程安全(我说了HashTable     ConcurrentHashMap  ConcurrentHashMap底层是分段加锁的     还说了Collections的线程安全化方法)

说下set   (用的少,两句话概过)

除了上述集合还用过哪些   (我说了跳跃表SkipList)

知道一些开源的集合吗   比如MashSet   (没听过。。。)

列举知道的排序算法  

详细说下快速排序

Object有哪些方法

说下TCP连接的详细过程

数据库的性质

说下多线程  (说了自己正在看java并发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蚂蚁云客服机器人面试答案全文共6页,当前为第1页。蚂蚁云客服机器人面试答案全文共6页,当前为第1页。蚂蚁云客服机器人面试答案 蚂蚁云客服机器人面试答案全文共6页,当前为第1页。 蚂蚁云客服机器人面试答案全文共6页,当前为第1页。 1、自我介绍、自己做的项目和技术领域 开放题 2、项目中的监控:那个监控指标常见的有哪些? 答:CPU、内存、IO 等等。建议下载个nmon工具,里面有各个指标。 数据库:Mysql(缓存命中、索引、单条SQL性能、数据库线程数、数据池连接数) 中间件:1.消息2、负载均衡3、缓存(包括线程数、连接数、日志)。 网络: 吞吐量、吞吐率 应用: jvm内存、日志、Full GC频率 3、微服务涉及到的技术以及需要注意的问题有哪些? 4、注册中心你了解了哪些? 答:Consul 、Eureka、ZooKeeper 5、consul 的可靠性你了解吗? 6、consul 的机制你有没有具体深入过?有没有和其他的注册中心对比过? 7、项目用 Spring 比较多,有没有了解 Spring 的原理?AOP 和 IOC 的原理 答:(1). IoC(Inversion of Control)是指容器控制程序对象之间的关系,而不是传统实现中,由程序代码直接操控。控制权由应用代码中转到了外部容器,控制权的转移是所谓反转。 对于Spring而言,就是由Spring来控制对象的生命周期和对象之间的关系;IoC还有另外一个名字——"依赖注入(Dependency 蚂蚁云客服机器人面试答案全文共6页,当前为第2页。蚂蚁云客服机器人面试答案全文共6页,当前为第2页。Injection)"。从名字上理解,所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,即由容器动态地将某种依赖关系注入到组件之中。 蚂蚁云客服机器人面试答案全文共6页,当前为第2页。 蚂蚁云客服机器人面试答案全文共6页,当前为第2页。 (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",即方面。所谓"方面",简单地说,就是将那些与业务无关,却为业务模块所共同调用的 逻辑或责任封装起来,比如日志记录,便于减少系统的重复代码,降蚂蚁云客服机器人面试答案全文共6页,当前为第3页。蚂蚁云客服机器人面试答案全文共6页,当前为第3页。低模块间的耦合度,并有利于未来的可操作性和可维护性。 蚂蚁云客服机器人面试答案全文共6页,当前为第3页。 蚂蚁云客服机器人面试答案全文共6页,当前为第3页。 (3). AOP代表的是一个横向的关 系,将"对象"比作一个空心的圆柱体,其中封装的是对象的属性和行为;则面向方面编程的方法,就是将这个圆柱体以切面形式剖开,选择性的提供业务逻辑。而 剖开的切面,也就是所谓的"方面"了。然后它又以巧夺天功的妙手将这些剖开的切面复原,不留痕迹,但完成了效果。 (4). 实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建"方面",从而使得编译器可以在编译期间织入有关"方面"的代码。 (5). Spring实现AOP:JDK动态代理和CGLIB代理 JDK动态代理:其代理对象必须是某个接口的实现,它是通过在运行期间创建一个接口的实现类来完成对目标对象的代理;其核心的两个类是InvocationHand

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值