热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

程序员_半年Curd程序员经验,三面美团之后居然给了30Koffer!

篇首语:本文由编程笔记#小编为大家整理,主要介绍了半年Curd程序员经验,三面美团之后居然给了30Koffer!相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了半年Curd程序员经验,三面美团之后居然给了30Koffer!相关的知识,希望对你有一定的参考价值。






个人背景

如标题所示,我的个人背景非常简单,Java 开发经验 1 年半,学历普通,2 本本科毕业,毕业后出来就一直在 Crud,在公司每天重复的工作对我的技术提升并没有什么帮助,但小镇出来的我也深知自我努力的重要性,想要改变“命运”,没有背景没有资本的人,只能通过勤奋获得。

幸运女神往往会眷顾努力的人,所以当好运降临到我头上,我并不诧异,目前拿到了美团 30K 的 offer,下文也不说废话,主要分享我这次“美团面试经历”和“个人学习方法”,希望能帮助到你们。

双汇发展



内容过多,不适合在文章全部阐述,下文的面试题以及学习资料都有整理在 pdf 里,需要完整 pdf 版的,“查看文末下载地址”即可免费领取资源包。



美团面试经历(还原最真实的 4 面)

美团一面:

1、自我介绍

2、聊项目相关


  • 介绍项目

  • 怎么保证 redis 与 mysql 的数据一致性

  • 见你写了个加随机数预防缓存雪崩,解释一下

  • 未改进和改进后的 Jmter 测试性能对比

3、Redis


  • 为什么选择 Redis 作为缓存?

  • 为什么 Redis 的性能十分的高?

  • 说一下单进程、单线程的 Redis 和你平时写的多线程程序的对比

  • 如何保证 Redis 的高可用?(哨兵、持久化策略 RDB、AOF)

  • 解释一下哨兵、RDB、AOF

  • 主从一致性

  • Redis 数据淘汰策略

  • 能说一下分布式事务吗?

  • setnx 是事务吗?

4、Mysql


  • 解释一下事务

  • 讲一讲事务隔离级别

  • 为什么使用 B+树作为索引

  • 聚簇索引和非聚簇索引的区别

5、Java


  • Java 是如何保证其安全性的

  • 刚见你说了 Java 内存泄漏问题,解释一下什么情况下会出现

  • 说一下 BIO、NIO、AIO

6、手撕算法


  • 一个数组找出出现次数最多的一个数,如果多个数出现的次数相同则输出第一个

  • 生产者消费者(一对一)

7、其它


  • 平时怎么学习的

  • 有什么需要问的吗?

美团二面:

1、手撕算法


  • 10 个多线程保证 i 从 0 加到 10 (差点翻车,主线程忙等另外 10 个线程完结)

  • 反转链表

  • 上台阶(n=80)

2、操作系统


  • 常用的 linux 命令说一下

  • 操作系统中的信号 和 信号量有什么关系

  • epoll 和 Selector 有什么区别?

3、计算机网络


  • 说一下拥塞控制

4、数据结构


  • 说一下红黑树,你平时用的技术哪里用到了它?

  • 哈希表怎么处理冲突?

5、项目相关


  • 把项目放到服务器上运行的时候有没有遇到什么问题?查看项目运行的状态怎么做?

  • spring 和 springboot 的关系你是怎么理解的?

  • Spring IOC 和 AOP 说一下你的理解

  • 为什么用消息队列?

  • 对于消息的重复消费你有什么设计方案吗?

美团三面:


  • 你怎么学的 Java 啊?

  • 设计模式了解吗?单例讲一下,懒汉饿汉 double-check,怎么实现。策略模式,外观模式,适配器模式,装饰器模式,分别讲一下

  • 联合索引什么时候不会触发索引?

  • AOP 了解么,有什么好处,如何使用,怎么实现的?

  • 支付宝到银行的转账业务怎么实现?

  • redis 实现分布式锁

  • 三台机器集群,按不同权重访问,怎么做?

美团四面(hr):


  • 先介绍一下你自己吧

  • 说一下四种 IO 模型

  • 平时怎么去学习的?

  • 为什么你说学习了要去实践?

  • 说一下的最大的优点和缺点

  • 举一下你缺点的例子

  • 想象一下你几十年后是怎样的生活?

  • 你觉得最痛苦的一段时间

  • 对你影响最大的一件事情

  • 在安排活动的过程中有没有发生什么冲突?

  • 你有什么崇拜的人吗?

  • 你有什么想问的?

 


让“努力”成为自己的背景(如何学习?)

1、看视频进行系统学习

这 1 年多的 Crud 经历,让我明白自己真的算是菜鸡中的战斗机,也正因为 Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去 B 站进行学习,B 站上有很多学习视频,唯一的缺点就是免费的容易过时。

另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:

 

2、读源码,看实战笔记,学习大神思路

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

Spring 源码深度解析:

 

Mybatis 3 源码深度解析:

 

Redis 学习笔记:

 

Spring Boot 核心技术-笔记:

 

3、面试前夕,刷题冲刺

面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。

关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:

 


总结

只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。

人生短暂,别稀里糊涂的活一辈子,不要将就。

文章内容中涉及到的 Java 面试题、源码文档,技术笔记等学习资料,均可以免费分享给大家学习,有需要的朋友可以“查看下图” 即可免费获取到了




推荐阅读
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 深入解析Linux下的I/O多路转接epoll技术
    本文深入解析了Linux下的I/O多路转接epoll技术,介绍了select和poll函数的问题,以及epoll函数的设计和优点。同时讲解了epoll函数的使用方法,包括epoll_create和epoll_ctl两个系统调用。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 数据结构与算法的重要性及基本概念、存储结构和算法分析
    数据结构与算法在编程领域中的重要性不可忽视,无论从事何种岗位,都需要掌握数据结构和算法。本文介绍了数据结构与算法的基本概念、存储结构和算法分析。其中包括线性结构、树结构、图结构、栈、队列、串、查找、排序等内容。此外,还介绍了图论算法、贪婪算法、分治算法、动态规划、随机化算法和回溯算法等高级数据结构和算法。掌握这些知识对于提高编程能力、解决问题具有重要意义。 ... [详细]
author-avatar
oz法卡山英雄营
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有