Kafka 必须掌握的核心技术,尚硅谷 java 入门,Nginx 面试
蚂蚁金服电话一面
第二天早上 10 点第一轮电话面试,我们大约聊了半个小时,关于学历工作经验这些都没有问到,对方关注的是一些基本的知识,具体记得的几个问题:
Spring 或者数据库的事物隔离级别和传播特性是怎样的
JDBC 的目的是什么,是一种接口还是一种实现
用过哪种连接池,为什么要用连接池
用过哪些缓存,用于什么场景,redis 怎么实现分布式锁
然后问我是否熟悉分布式系统的设计和应用,熟悉分布式框架、中间件、数据库等机制,能不能对分布式常用技术进行合理应用解决问题。
前边的几个问题对我来说很简单,后来接着一波问题说实话如果不是我提前做好了功课,回答起来也不会特别流畅,因为对方连续追问了几层问题,还好我接住了。(我觉得面试前必要的功课不可少!!)
本来我以为没戏了,一个星期后通知我需要现场二面,这对我来说是更大的挑战也是绝佳的机会,因为我知道,我离我的梦想又近了。二面我准备了 3 天,并且看了他的招聘要求,和职位介绍,把提到的技术点我都重新捋一遍,尽可能让自己准备充足更有信心。
蚂蚁金二面
上午 9 点面试,面试官除了个子没我高之外,面貌很英俊,比较爱笑,这让我也不那么紧张了,感觉眼缘不错,氛围也不错,做了简单的自我介绍之后,他直奔主题问了我一连串问题,我面试完做了整理分享给大家:
自我介绍(工作年限 毕业学校专业 英语几级)
介绍项目,在项目中用到了 redis 实现用户点赞功能和关注功能,项目中为什么用 redis 以及怎么实现相关功能的
Java 的集合框架(主要是 HashMap,1.7 和 1.8 之间的区别)
项目中用过的开源框架,为什么要用 spring 和 mybatis
spring 的核心功能是什么,介绍一下 AOP 以及怎么实现的,jdk 代理和 cglib 代理的区别
数据库的四大特性,事务的隔离级别,幻读。
计算机网络都学了什么(类似说书上的目录),OSI 七层每层的任务,数据链路层的功能(答得不全)和协议。
数据结构都学了什么,排序算法最快的是哪种说说原理,哪些是不用申请额外空间的
树的非递归遍历以及三种遍历知道哪两种不能确定一棵树
介绍一下二叉平衡树
是否看过 jdk 源码,说说你说看过的
说说 concrrent 包下的类,然后问了一下 Reentrantlock
对于 Java 高并发了解多不多,怎么处理一些秒杀问题
最后我们该如何学习?
1、看视频进行系统学习
这几年的 Crud 经历,让我明白自己真的算是菜鸡中的战斗机,也正因为 Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去 B 站进行学习,B 站上有很多学习视频,唯一的缺点就是免费的容易过时。
另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:
2、读源码,看实战笔记,学习大神思路
“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。
Spring 源码深度解析:
Mybatis 3 源码深度解析:
Redis 学习笔记:
Spring Boot 核心技术-笔记:
3、面试前夕,刷题冲刺
面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:
只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。
人生短暂,别稀里糊涂的活一辈子,不要将就。
评论