双非本科进不了大厂?美团技术四面+交叉面+HR面,成功拿到offer

前言

前阵子,我表弟收到了阿里巴巴的实习offer,从学长内推开始面试到拿到最后offer经历了4面技术、一面交叉面和一面HR面。经过了漫长的等待和几次几乎折磨的面试之后,终于拿到了实习offer。

面试准备

首先准备校招之前一定是要好好准备的,长期的就是自己的编程基本功以及对各个方面知识点的了解程度,短期的就是突破一下自己不会的知识点。

他是投简历之前一个半月就开始做准备了,首先就是刷题,算法这一关还是比较重要,而且阿里还有笔试成绩,面试的时候也会问到一些不是太难的笔试题;

然后就是多找几篇面经,看看学长学姐当初面试的时候面试官都问了哪些问题,如果遇到会的,自己尝试回答一遍,如果遇到不会的,那就去学习一下;

不过网上找的面经可能因为大家的学习过程不一样,找到类似的面经的概率个人感觉不太大

最后找到了一个很完整的Java面试题及答案的文档用来做复习资料。(Java面试宝典及核心知识宝典复习)

面试过程

第一次技术面(60min)

说一说你使用的是什么样的线程池,自定义线程池的几个参数是什么

说一说线程池的执行流程

你的项目中定义的核心线程数、最大线程数和队列大小是如何定义的?为什么这样定义?(这道题根绝我导师给我说是一个加分项)

在项目中如何防止超卖现象

你的下订单的sql语句如何编写的?(考察MySQL的乐观锁)

如果有用户反馈说整个系统的反馈比较慢,你是如何排查和如何解决问题的?

影响系统响应慢的原因有哪些?

算法题:给定一个无序数组和一个目标值,找出数组中两个数之和等于目标值的所有组合,并指出其时间复杂度。(很简单的一个算法题,leetcode easy难度)

了解过JVM内存模型么?说说哪些是线程独享、哪些是线程共享的?

详细说一下Java堆的分区,他们的比例,以及如果把比例调大以后会有什么样的后果?

说一下JVM的GC算法,以及为什么“标记-整理”法更好一些,他能解决什么样的问题?

了解过Java类加载机制么?一共有哪几种类加载器?

如果你想查看线上正在运行的服务的GC日志,你需要输入什么指令?

了解过HashMap么,说一下HashMap的原理。

如果两个对象hashCode相同,则一定是相同对象么,如果是两个相等的对象,那么他们的hashCode相同么?

如何解决hash冲突?

HashMap是线程安全的么,如何把HashMap变成线程安全的类?

说一说MySQL数据库有哪些数据库引擎?

InnoDB的索引的数据结构是什么,说一说他的原理

数据库事务等级以及他们解决了什么问题,请举例说明一下

MySQL默认的事务等级是什么?

MySQL如何开启慢查询?

说一下Spring主要包含哪些模块?

说一下你对Spring的IOC容器的理解以及启动流程

有了解过RPC框架或分布式的东西么?(这个后来问面试官,就是考察对新技术的了解以及对互联网发展的一个关注度)

说一下你读过的有关Java的书籍

第二次技术面(30min)

介绍一下你做的项目中你觉得最好的那个;说一下你这个项目中的技术难点和挑战。

如何解决商城项目中出现的超卖、少卖问题?

说一下什么是幂等性

Redis如何保证高可用的

Redis的哨兵模式知道吗?

你用Redis觉得有什么缺点吗?

你是如何做压力测试的?压力测试的数据是什么?

线城池有哪些参数?

核心线程数和最大线程数有什么区别?

常见的拒绝策略有哪些?

介绍一下SpringBoot的特性

说一下什么是单例模式

什么是饿汉模式、懒汉模式

使用懒汉模式的注意事项以及如何解决

说一下volatile关键字的作用和原理

说一下自旋锁和一些常见的自旋锁的实现

说一下数据库的左外连接

数据库索引优化

数据库索引的数据结构

第三次技术面(25min)

如何解决商城项目中出现的超卖、少卖问题?

在开发项目中,遇到了哪些问题?

Redis与数据库同步时候出现问题是如何解决的

说一下Java当中线程有哪些状态

线程的阻塞和等待有什么区别

介绍一些Java的锁机制

你了解过哪些锁的类型

为什么wait、notify这个方***在Object这个类下面

分布式、RPC框架有了解过吗

Redis的线程模型是什么(考察NIO)

Redis实现的消息队列是如何保证消息不丢

介绍一下堆排序是如何实现的

介绍一下TCP/IP协议是如何保证消息可靠传输的

TCP/IP协议做了什么优化(拥塞控制和流量控制)

第四次技术面(15min)

说一下你投稿的文章写得是什么内容

介绍一下消息队列

超卖是如何解决的?

下单过程是如何设计的?

介绍一下雪花算法

你怎么理解分布式?

分布式之间怎么通信?

生产者、消费者模型是怎么工作的?

Java里面创建线程的方式

代码场景:给一个字符串,统计每个大写字母出现的次数,按照次数排序,从小到大输出字母和其出现的次数

交叉面试(30min)

你在学校学习过程中,哪些可能成绩更好一些以及为什么这些课程成绩更好一些

你学习Java多长时间了

你是如何学习Java的?

你看过哪些开源框架源码?

你是怎么看开源框架源码的?

介绍一个你参与较多或者比较有难度的项目

你们团队开发项目的时候有没有大家一起解决的某些技术问题

你们做的这个项目有没有借鉴过其他已经成熟的项目

说一下你们项目的要求和指标大概是多少

你们项目中的线程池队列容量是如何确定的

项目中的某些解决方案是个人想出来的还是团队讨论的结果

如果再让你做一个商城系统,你会做哪些技术选型

项目中做过哪些安全方面的措施

你会如何设计一个淘宝会员系统?

你未来的发展方向是什么?

面试总结

每一次面试都感觉是煎熬,虽然之前看过很多阿里的面经,都说阿里面试官会抓住某一点一直问下去,直到问到你不会为止,但是当第一次亲身体会的时候,还是感觉很煎熬。

不过最终的结果还是好的,至少收到了心仪的offer,能在这个疫情期间,大环境不好的情况下找到实习工作。

对于整个的学习过程和面试过程,最大的感悟有四:

  • 基础知识要扎实,尤其是Java和数据库的基础知识,如果基础知识不扎实,后面什么框架和实战不会有太好的结果
  • 多看一些技术类的博客或者文章,但是要有自己的思考,因为很多技术类文章都是跟紧互联网发展的,多看一些能够更加了解互联网的发展方向;同时自己的思考也能让自己过滤掉某些文章中的较差的观点,做到取其精华去其糟粕
  • 主动很重要,给我内推的学长是我主动认识的,我的导师是我主动认识的,学技术也是我主动学习的,这世上没有天上掉馅饼的好事,主动才会有故事
  • 一个合适的导师真的很重要,我在遇到我的导师之前,学习方向很迷茫,对于很多东西都不知道如何入手,很多文章也没有解决我的问题;老师这时候就可以指明方向,让我的学习之路少了很多崎岖

对这些面试笔记宝典感兴趣的小伙伴可以在文末获取完整版文档!

1、Java后端覆盖1000多道常问面试题及答案详解

上千道Java、Spring、JVM、集合、JVM、Mybatis、MySQL、DB、GC、Spring全家桶、Dubbo、数据结构、算法、Kafka、微服务等

283页Java核心知识

3、面试宝典

面试复习宝典、面试前刷一遍对你帮助非凡!

2023年350道面试体系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机科学与技术专业是一个广泛且深入的领域,以下是一般的学习路线和一些建议,帮助您在这个领域取得成功并有机会进入大厂: 1. 基础知识学习:首先,建立坚实的计算机科学基础知识。学习数据结构、算法、操作系统、计算机网络等核心课程,理解计算机底层原理和工作机制。 2. 编程语言掌握:熟练掌握至少一门主流编程语言,如C++、Java、Python等。通过实践项目和解决实际问题,提升编程能力。 3. 实践项目经验:参与开源项目、个人项目或校内外实习等,积累实践经验。这有助于展示您的技能和对于解决问题的能力。 4. 深入专研:选择自己感兴趣的方向进行深入研究,如人工智能、网络安全、大数据等。通过阅读论文、参加研讨会等方式,不断拓宽自己的知识。 5. 实习与实践:尽可能多地参加实习,获得实际工作经验。通过实习,您可以学习到实际项目开发流程、团队协作等技能,同时增加与大厂接触的机会。 6. 提升软技能:除了技术能力,大厂也看重沟通、团队合作和领导能力。发展自己的软技能,如沟通技巧、解决问题的能力、项目管理等,能够提高自己在求职中的竞争力。 7. 多方准备:大厂对于求职者有着较高的要求,包括技术面试、算法题、系统设计、逻辑思维等。除了技术准备外,多参加面试模拟、刷题等活动,提前准备面试所需的各项能力。 8. 学习资源利用:利用各种学习资源,如在线课程、教材、技术博客等。参与技术社区,与其他人交流学习经验和观点。 请注意,以上是一般的建议,不同的大厂对求职者的要求可能有所不同。因此,您可以根据目标公司的需求和招聘信息来调整自己的学习和准备方向。最重要的是保持学习的态度和对技术的热情,不断提升自己的能力和知识储备。祝您顺利毕业并实现进入大厂的目标!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值