记一次蚂蚁金服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!!!

资料的领取方式:关注后点击这里即可免费获取哦!

最后

小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。

关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。

这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)可以直接【点击 “性能调优”】免费下载!

有详细的介绍。

[外链图片转存中…(img-T9K66LC6-1623422329119)]

这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)可以直接【点击 “性能调优”】免费下载!

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

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

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

  2. 详解蚂蚁金服 SOFAJRaft:生产级高性能 Java 实现

    SOFAStack(Scalable Open Financial Architecture Stack) 是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,是在金融场景 ...

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

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

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

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

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

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

  6. 蚂蚁金服 + 拼多多 + 抖音 + 天猫 Java 面经合集,金九yings

    前言 很多 Java 开发者面试之前,可能没有较长的工作时间或者较为丰富的工作经验,所以不知道互联网公司或者一线互联网公司技术面试都会问哪些问题? 再加上可能自己准备也不充分,去面试没几个回合就被面试 ...

  7. 全网首发?蚂蚁金服内部共享—1658页《Java面试突击核心讲》

    又是一年一度的 "金九银十" 秋招大热门,为助力广大程序员朋友 "面试造火箭",小编今天给大家分享的便是这份蚂蚁金服内部的面试神技--1658页<Java ...

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

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

  9. 蚂蚁金服,马已今服:循环放贷高杠杆,ABS(Asset-backed Securities)与巴塞尔协议...

    10月25日,马云在外滩金融峰会上发表一段长达21分钟的演讲,公开diss国内金融体系: "中国金融没有系统性风险,因为没有系统." "今天的银行延续的还是当铺思想,抵押 ...

最新文章

  1. 格式化输入输出(待更新)
  2. 计算机网络谢希仁第七版课后答案第一章 概述
  3. gin框架502错误
  4. 线程池:ThreadPoolExecutor
  5. python中fit函数_Houdini中fit( )函数学习笔记
  6. 华谊兄弟:拟向阿里影业、腾讯等发行不超8.2亿股股票
  7. Cockos REAPER for Mac(音轨录制编辑软件)
  8. Java Netty 初步
  9. IT界那些性感的让人尖叫的程序员
  10. 联想如何在桌面显示计算机和网络图标,联想电脑桌面图标字体变小怎么办
  11. 中文句法分析_句法分析StanfordParser+依存句法分析pyhanlp
  12. 微信查询对账单对账+数据读取解析入库
  13. 洛谷P3239 [HNOI2015]亚瑟王
  14. html div浏览器居中显示,IE浏览器DIV居中实现方法
  15. Guava 指南 之「前置条件」
  16. 实验五——数据库设计实验
  17. CTS fail 问题总结
  18. 常见的java面试知识点
  19. 【文献笔记】【部分精读】【CIR】Angle of Arrival Estimation based on Channel Impulse Response Measurements
  20. 魔百盒m301h刷机固件 s-m代工 通-刷 刷机固件及教程

热门文章

  1. 离线使用iPhone SDK文档的方法
  2. 修改窗口图标 AfxRegisterWndClass()
  3. linux 7 services设定,CENTOS/RHEL7系统中设置SYSTEMD SERVICE的ULIMIT资源限制
  4. java 图片去除黑边_根据 Map 上的变量绘制彩色和形状的点时,保持符号的黑色边框(geom_point)...
  5. java嵌套类型 无法隐藏外层类型_java内部类深入详解 内部类的分类 特点 定义方式 使用...
  6. 做折线图坐标轴数字_Excel折线图表的另类表达制作?牛闪君使用了双线表达法来完成...
  7. 10个必知的网页设计术语计算机与网络,计算机网络专业毕业论文-网页设计与制作(23页)-原创力文档...
  8. linux rsync删文件速度,为什么用rsync删除大量文件的时候比用rm快
  9. mysql 查询系统_使用select和show命令查看mysql数据库系统信息
  10. 【C++基础】异常匹配与内建异常类