写点什么

面试蚂蚁金服,首战被 MySQL 惨虐,熬夜啃透这份阿里面经复盘一个月再战拿下 P7offer

用户头像
比伯
关注
发布于: 2020 年 11 月 12 日

爱因斯坦说过“耐心和恒心总会得到报酬得”,我也一直把这句话当做自己的座右铭,这句箴言在今年也彻底在“我”身上实现了。



每一个程序员都拥有一座大厂梦,我也不例外,去年面试蚂蚁金服,竟然被MySQL问倒了,很多相关性的问题都没有答上来,才2面就凉凉了。回去之后也潜心复习了,准备了二战,如今终于进入了蚂蚁金服,被录用。



以下展示的阿里面试题(含答案)、学习包、实战文档等,均可以分享给大家!





01 蚂蚁金服面试题之MySQL



之前的阿里面试题都有做总结,具体面试题内容整理成了文档,本文是针对MySQL系列的,所以下面只展示了自己第一次面试阿里时被吊打问到的一些MySQL难题,其他专题内容(含答案)的文档资料



1、请解释关系型数据库概念及主要特点?



2、请说出关系型数据库的典型产品、特点及应用场景?



3、请详细描述 SQL 语句分类及对应代表性关键字。



4、什么是 MySQL 多实例,如何配置 MySQL 多实例?



5、如何加强 MySQL 安全,请给出可行的具体措施?



6、误操作执行了一个 drop 库 SQL 语句,如何完整恢复?



7、详述 MySQL 主从复制原理及配置主从的完整步骤。



8、MySQL 如何实现双向互为主从复制,并说明应用场景?



9、MySQL 如何实现级联同步,并说明应用场景?



10、MySQL 主从复制故障如何解决?



02 二战阿里,天猫团队面试题(3轮技术面+HR面)



蚂蚁金服面试技术题:



1、自我介绍呗



2、项目介绍呗(先自己介绍项目,然后再聊天)



3、junit用法,before,beforeClass,after,afterClass的执行顺序



4、分布式锁



5、nginx的请求转发算法,如何配置根据权重转发



6、用hashmap实现redis有什么问题(死锁,死循环,可用ConcurrentHashmap)



7、线程的状态



8、线程的阻塞的方式



9、sleep和wait的区别



10、hashmap的底层实现



11、一万个人抢100个红包,如何实现(不用队列),如何保证2个人不能抢到同一个红包,可用分布式锁



12、Java内存模型,垃圾回收机制,不可达算法



13、两个Integer的引用对象传给一个swap方法在方法内部交换引用,返回后,两个引用的值是否会发现变化



14、AOP的底层实现,动态代理是如何动态,假如有100个对象,如何动态地为这100个对象代理?



15、是否用过maven install、 maven test、git(make install是安装本地jar包)



16、Tomcat的各种配置,如何配置docBase



17、Spring的bean配置的几种方式



18、Web.xml的配置



19、Spring的监听器。



20、Zookeeper的实现机制,有缓存,如何存储注册服务的



21、IO会阻塞吗?readLine是不是阻塞的



22、用过 Spring的线程池还是java的线程池?



23、字符串的格式化方法 (20,21这两个问题问的太低级了)



24、时间的格式化方法



25、定时器用什么做的



26、线程如何退出结束



27、java有哪些锁?乐观说 悲观锁 synchronized 可重入锁 读写锁,用过reentrantlock吗?reentrantlock与synmchronized的区别



28、ThreadLocal的使用场景



29、Java的内存模型,垃圾回收机制



30、为什么线程执行要调用start而不是直接run(直接run,跟普通方法没什么区别,先调start,run才会作为一个线程方法运行)



31、qmq消息的实现机制(qmq是去哪儿网自己封装的消息队列)



32、遍历hashmap的三种方式



33、JVM的一些命令



34、memcache和redis的区别



35、Mysql的行级锁加在哪个位置



36、ConcurrentHashmap的锁是如何加的?是不是分段越多越好



37、myisam和innodb的区别(innodb是行级锁,myisam是表级锁)



38、MySQL其他的性能优化方式



39、Linux系统日志在哪里看



40、如何查看网络进程?



41、统计一个整数的二进制表示中bit为1的个数



42、JVM内存模型,java内存模型



面试题答案:





03 二战前,我是如何复习的?



(1)MySQL 专题部分(先刷题)



1、Mysql 中有哪几种锁?



2、MYSQL 数据表在什么情况下容易损坏?



3、MySQL 里记录货币用什么字段类型好



4、MYSQL 支持事务吗?



5、解释访问控制列表



6、什么是通用 SQL 函数?



7、什么是非标准字符串类型?



8、Mysql 表中允许有多少个 TRIGGERS?



9、什么样的对象可以使用 CREATE 语句创建?



10、NOW()和 CURRENT_DATE()有什么区别?



11、可以使用多少列创建索引?



12、InnoDB 是什么?



13、Mysql 如何优化 DISTINCT?



14、如何输入字符为十六进制数字?



15、如何显示前 50 行?



......



MySQL 面试题答案:





(2)MySQL 性能优化的21个最佳实践



1、为查询缓存优化你的查询



2、EXPLAIN 你的 SELECT 查询



3、当只要一行数据时使用 LIMIT 1



4、为搜索字段建索引



5、在 Join 表的时候使用相当类型的例,并将其索引



6、千万不要 ORDER BY RAND()



7、避免 SELECT *



8、永远为每张表设置一个 ID



9、使用 ENUM 而不是 VARCHAR



10、从 PROCEDURE ANALYSE() 取得建议



11、尽可能的使用 NOT NULL



12、Prepared Statements



13、无缓冲的查询



14、把 IP 地址存成 UNSIGNED INT



15、固定长度的表会更快



16、垂直分割



17、拆分大的 DELETE 或 INSERT 语句



18、越小的列会越快



19、选择正确的存储引擎



20、使用一个对象关系映射器(Object Relational Mapper)



21、小心“永久链接”





(3)MySQL 性能调优与架构设计



基础篇:



1、MySQL基本介绍



2、MySQL架构组成



3、MySQL存储引擎简介



4、MySQL安全管理



5、MySQL备份与恢复



性能优化篇:



1、影响MySQLServer性能的相关因素



2、MySQL数据库锁定机制



3、MySQL数据库Query的优化



4、MySQL数据库Schema设计的性能优化



5、MySQLServer性能优化



6、常用存储引擎优化



架构设计篇:



1、MySQL可扩展设计的基本原则



2、可扩展性设计之MySQLReplication



3、可扩展性设计之数据切分



4、可扩展性设计之Cache与Search的..



5、MySQLCluster



6、高可用设计之思路及方案



7、高可用设计之MySQL监控





04 我的复习宝典资料



(1)Java面试手册



1、性能优化面试专栏



2、微服务架构面试专栏



3、并发编程高级面试专栏



4、开源框架面试题专栏



5、分布式面试专栏



(2)实战文档



1、Redis实战



2、MySQL实战



3、Spring Boot实战



4、Spring Cloud实战



5、实战Java虚拟机



以实战Java虚拟机为例:



1、初探Java虚拟机



2、认识Java虚拟机的基本结构



3、常用Java 虚拟机参数



4、垃圾回收概念与算法



5、垃圾收集器和内存分配



6、性能监控工具



7、分析Java堆



8、锁与并发



9、Class 文件结构



10、Class 装载系统



11、字节码执行





(3)Java核心知识点整理文档





由于篇幅限制,很多内容都只展示了目录和截图,这些都整理在文档里,需要这些文档资料的,均可以分享给大家,希望所有的程序员都能够学习起来,努力实现我们的大厂梦!



用户头像

比伯

关注

还未添加个人签名 2020.11.09 加入

还未添加个人简介

评论

发布
暂无评论
面试蚂蚁金服,首战被MySQL惨虐,熬夜啃透这份阿里面经复盘一个月再战拿下P7offer