记一次蚂蚁金服Java程序员面试经历(均为交叉面)

一面

  • 自我介绍
  • 项目中的监控:那个监控指标常见的有哪些?
  • 微服务涉及到的技术以及需要注意的问题有哪些?
  • 注册中心你了解了哪些?
  • consul 的可靠性你了解吗?
  • consul 的机制你有没有具体深入过?有没有和其他的注册中心对比过?
  • 项目用 Spring 比较多,有没有了解 Spring 的原理?AOP 和 IOC 的原理
  • Spring Boot除了自动配置,相比传统的 Spring 有什么其他的区别?
  • Spring Cloud 有了解多少?
  • Spring Bean 的生命周期
  • HashMap 和 hashTable 区别?
  • Object 的 hashcode 方法重写了,equals 方法要不要改?
  • Hashmap 线程不安全的出现场景
  • 线上服务 CPU 很高该怎么做?有哪些措施可以找到问题
  • JDK 中有哪几个线程池?顺带把线程池讲了个遍
  • 应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描
  • SQL 索引的顺序,字段的顺序
  • 查看 SQL 是不是使用了索引?(有什么工具)
  • TCP 和 UDP 的区别?TCP 数据传输过程中怎么做到可靠的?
  • 说下你知道的排序算法吧
  • 查找一个数组的中位数?

二面

你有什么问题想问我的吗?(常规问询)

  • 自我介绍、工作经历、技术栈
  • 项目中你学到了什么技术?
  • 微服务划分的粒度?
  • 微服务的高可用怎么保证的?
  • 负载均衡与反向代理,隔离,限流,降级,超时与重试,回滚,压力测试与应急预案
  • 常用的负载均衡,该怎么用,你能说下吗?

(技术问)

  • http重定向
  • DNS负载均衡
  • 反向代理负载均衡
  • IP负载均衡(LVS-NAT)
  • 直接路由(LVS-DR)
  • IP隧道(LVS-TUN)
  • 网关能够为后端服务带来哪些好处?
  • Spring Bean 的生命周期
  • xml 中配置的 init、destroy 方法怎么可以做到调用具体的方法?反射的机制
  • Object 类中的方法
  • 对象比较是否相同
  • hashmap put 方法存放的时候怎么判断是否是重复的
  • Object toString 方法常用的地方,为什么要重写该方法
  • Set 和 List 区别?
  • ArrayList 和 LinkedList 区别
  • 如果存取相同的数据,ArrayList 和 LinkedList 谁占用空间更大?
  • Set 存的顺序是有序的吗?
  • 常见 Set 的实现有哪些?
  • TreeSet 对存入对数据有什么要求呢?
  • HashSet 的底层实现呢?
  • TreeSet 底层源码有看过吗?
  • HashSet 是不是线程安全的?为什么不是线程安全的?
  • Java 中有哪些线程安全的 Map?
  • HashTable 你了解过吗?
  • 如何保证线程安全问题?
  • synchronized、lock
  • volatile 的原子性问题?为什么 i++ 这种不支持原子性?从计算机原理的设计来讲下不能保证原子性的原因happens before 原理
  • cas 操作
  • lock 和 synchronized 的区别?
  • 公平锁和非公平锁
  • Java 读写锁
  • 读写锁设计主要解决什么问题?
  • 你项目除了写 Java 代码,还有前端代码,那你知道前端有哪些框架吗?
  • MySQL 分页查询语句
  • MySQL 事务特性和隔离级别

二、事务的并发问题

  • 不可重复读会出现在什么场景?
  • sql having 的使用场景
  • 前端浏览器地址的一个 http 请求到后端整个流程是怎么样?
  • http 默认端口,https 默认端口
  • DNS 你知道是干嘛的吗?
  • 你们开发用的 ide 是啥?你能说下 idea 的常用几个快捷键吧?
  • 代码版本管理你们用的是啥?
  • git rebase 和 merge 有什么区别?

你们公司加班多吗?(题外话)

举例回答:

项目用 Spring 比较多,有没有了解 Spring 的原理?AOP 和 IOC 的原理

答:(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面试核心知识点来应付面试,借着这次机会可以免费送给我的读者朋友们:

目录:

Java面试核心知识点

一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!

Java面试核心知识点

资料的领取方式点击这里统统拿走

已经有读者朋友靠着这一份Java面试知识点指导拿到不错的offer了,各位读者朋友们快来找我免费获取吧!

大厂面试115道(上下集)

有朋友靠这份大厂面试文档面试了阿里、新浪、中国平安最后拿到了中国平安offer!!!

资料的领取方式

Java岗定级阿里P6-二面蚂蚁金服(交叉面),已拿offer相关推荐

  1. 二面蚂蚁金服(交叉面),已拿offer,Java岗定级阿里P6

    记一次蚂蚁金服Java程序员面试经历(均为交叉面) 一面 自我介绍 项目中的监控:那个监控指标常见的有哪些? 微服务涉及到的技术以及需要注意的问题有哪些? 注册中心你了解了哪些? consul 的可靠 ...

  2. 再见~ 蚂蚁金服!(已拿offer)

    一般来说下半年的这段时间是大厂招聘.就业者求职跳槽的黄金时期,但今年因为疫情的原因,很多人的辞职计划被搁浅了下来. 但是也有一些小伙伴在这种困境下也拿到了一线互联网大厂的offer,比如我的一位同学, ...

  3. Java程序员秋招三面蚂蚁金服,我总结了所有面试题,也不过如此

    蚂蚁金服一面: 9月底,一天下午杭州的电话,问有没有空,果断有空,虽然感觉略显紧张,有点懵逼. 面试的题目: HashMap和Hashtable的区别 实现一个保证迭代顺序的HashMap 说一说排序 ...

  4. 【美少女】我和阿里的不解之缘之蚂蚁金服

    编辑于2020-3-17 今天丝毫没有学习的心情,早上睡了个懒觉(虽然每天都睡懒觉),但是下午也不想学呢,一点多,正在看美妆视频,手机顶端弹出一个数字:0!5!7!1!我疯狂在脑海中做DFS,嗯?健谈 ...

  5. 支付宝否认彭翼捷退出阿里系:在蚂蚁金服出任首席市场官

    今日,有报道称,阿里合伙人彭翼捷全面退出阿里系,对此,支付宝官微回应称,彭翼捷是蚂蚁金服在职员工,并担任首席市场官. 根据报道,上海云进信息技术有限公司法定代表人由彭翼捷变更为韩歆毅,在工商信息方面, ...

  6. 面试蚂蚁金服(意外拿到offer)分享四面经历,从线程锁到数据库

    最近一位笔者经历了漫长一个月的等待,终于在前几天通过面试官获悉已被蚂蚁金服录取,这期间的焦虑.痛苦自不必说,知道被录取的那一刻,一整年的阴霾都一扫而空了. 笔者面的是阿里的Java研发工程师岗,面试流 ...

  7. 蚂蚁金服区块链已开出近60万张医疗电子票据,市民报销看病更方便!

    小蚂蚁说: 从前,看病经常都是5分钟排队两小时,诊间跑断腿手上一堆票.而如今,在蚂蚁金服区块链技术的支持下,这个大家熟悉的经历很快将成为过去. 前言 据了解,蚂蚁金服区块链携手航天信息已经在悄然试水区 ...

  8. 热乎乎的蚂蚁金服面经分享,offer已到手建议收藏(Java岗、附答案解析)

    1.幸运而匆忙的一面 一面完等了差不多半个月才突然接到二面面试官的电话. 一面可能是简历面,所以问题比较简单. ArrayList和LinkedList区别? ArrayList 是一个可改变大小的数 ...

  9. 超仪电子 java面试_全靠这份阿里大佬的“Java进阶面试手册”助我收获蚂蚁金服offer!...

    都2021年了,你的工资涨了吗? 对于即将到来的金三银四跳槽涨薪季,我想很多小伙伴都已经摩拳擦掌了吧!当然,我猜也有很多小伙伴是下图的状态吧!毕竟面试一年比一年难[落泪] 不得不说现在面试确实很难,现 ...

最新文章

  1. java logging包_用JDK中提供的java.util.logging.*包创建Logger对象----原创
  2. CentOS6.4安装Samba(匿名)共享服务器
  3. c windows控制台输出颜色文字
  4. uml 继承_UML 完全解析和总结
  5. jquery easyui datagrid getSelections用法
  6. SmartCode.ETL 这不是先有鸡还是蛋的问题!
  7. corba的兴衰_数据科学薪酬的兴衰
  8. interceptor 拦截器的使用 (session验证)
  9. python数据分析实战案例logistic_Python机器学习随笔之logistic回归识别手写数字
  10. 绩效管理KPI指标体系设计:142页KPI设计思路与实施实践
  11. SQL.变量、运算符、if、while
  12. maven java jar_如何去maven仓库下载jar包
  13. PowerDesigner--创建概念数据模型;并生成逻辑数据模型/物理数据模型/数据库SQL脚本
  14. java 深拷贝 序列化_java 之 利用序列化实现深拷贝
  15. wordpress 通过域名无法访问_使用WordPress搭建自己的内容发布平台
  16. android view分析工具栏,如何在Android工具栏中使用SearchView
  17. 如何生成SSH key
  18. 程序员价值观和网络复杂性-网络不可达排查过程
  19. trackmaker翻译_体育翻译滑雪中英对照翻译
  20. MongoDB实战-分片概念和原理

热门文章

  1. 妙赞大讲糖:糖尿病患者什么情况别手术
  2. 梁宁——用户体验地图和用户故事(阅读总结)
  3. IDC连续三年商用计算机排名前3名,IDC:2017年销量1.118亿 OPPO稳居全球第四
  4. PHP面试题精讲—从Yii2源码ActiveForm看如何安全处理表单验证
  5. 正高职称 程序员_研究员级高级工程师和高级工程师有什么区别,副研究员与高级工程师有什么差别...
  6. 学校计算机工作室制度,邵鹏飞计算机工作室2019-2020学年工作计划
  7. 小春日记 - 基金初识
  8. 企企通聚源池| 聚合海量资源全网寻源,赋能供采双方撮合交易
  9. 在Docker中运行EOS(MAC版)
  10. 【印刷行业】RICOH TH5241喷头(G5i)