Java程序员拿着阿里offer却去头条,面试被线程池绊倒,难受!
之前有程序员网友在牛客网发表了自己在头条的面试经验和过程,小编拿过来和大伙分享下。
一面考算法:两个基础题目,思路不难,考基本功,一个是链表相加,思路就是反转 然后求和,另一个是多个有序数组 归并。
二面考应用和知识面:内容涉及 mysql 引擎,索引(mysql 这块一定要懂);java map底层实现,最好看源码,还有各种集合类的区别;最小堆;http协议,ajax;java多线程;一些java的常用框架的架构;缓存数据库比如 redis。最后一个算法题是一个装水的问题,问在装多少。
三面:java 多线程,mysql 索引,问一些做过的项目
HR 面:问一些平时的学习方式之类的,比较轻松。
同时也有网友在匿名区发表了自己去头条面试的情况,他表示为了面头条Java开发,看了spring源码,spring boot源码,spring cloud部分源码,准备了大量算法题。没想到面试官一开始就要求写一个线程池,思路正确可是被说加锁的控制不好。然后结束了,这位面试者很纳闷,最后发帖问广大网友:头条的Java难到不用spring吗?只用多线程?
然后这位楼主还再评论区补充到,自己工作五年,阿里,美团,京东offer都有。就是想去今日头条,没想到结局是这样子。线程池的实现其实是很简单,只是平时没关注过。一般面试也就是问问原理,很少手写实现线程池的,jdk实现得很经典了,何必再个人去干呢?头条Java感觉一般,面试官也只是问一些知识性问题。没有问到框架。Java是干嘛的?就是框架开发啊。
同时也有网友表示有点坑,一般都是看看线程池源码。execute里面到处充斥着状态改变时候的if判断。一般人写不出来吧。
评论区也有是面试官的网友回复到楼主。表示,自己作为大厂一名资深的面试官我一定会问的,一般只问线程的创建方式的,面试官也是个菜鸟,一般要问任务满了怎么办,阻塞队列是什么,原理是啥,阻塞队列满了怎么办,完后什么什么场景用什么线程池,密集型和io形都用什么,为什么。
然后之前那名网友又发表了自己的经历:自己也点背,准备了好多二叉树、图论、递归,恨不得都得手红黑树了。面了好几家,也不乏个别准大厂,都没问。感觉Java面试官普遍不关注这一块,都是偏运维和架构的题目。白白浪费了精力和感情,郁闷额。结果楼主表示,如果自己遇到手写红黑树的,我一般直接说写不出来。结果随意。
但也有网友觉得楼主就是太low,宇宙头条不是白叫的,临时准备面试通过的可能性比较小,涉及面很广,面试官的问题很发散,比较难。
那对于以上网友们的看法和经历。大伙儿怎么看的呢?欢迎在下方评论区吐槽!
如果大家想要学习java编程的小伙伴,可以加入程序员学习交流群:878249276,群里有分享的视频,面试指导,架构资料,还有思维导图、群公告有视频,都是干货的,你可以下载来看。主要分享分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师视频。合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
探索饿了么移动APP的架构演进之路
引言 时代演进,技术也随之发展。到今天,APP已然成为绝大多数互联网企业用来获取用户的核心渠道。与此同时,伴随着业务量的增长,愈来愈大、愈来愈多的APP也在不断地、持续地挑战着每一个移动端研发人员的知识深度,而我们的移动端技术人员也在这个不断接受挑战的过程中,成就了今天的移动互联网时代。饿了么移动APP就是这样一个挑战,多用户量、多业务量,在接受着更多更挑剔用户的同时,默默地、不断地演进着移动端的架构。 1 MVC 我们常说,脱离业务谈架构就是纯粹的刷流氓。饿了么移动APP的发展也是其业务发展的一面镜子。 在饿了么业务发展的早期,移动APP经历从无到有的阶段。为了快速上线抢占市场,传统移动APP开发的MVC架构成了“短平快”思路的首选: 图1 MVC架构 这种架构以层次结构简单清晰,代码容易开发而被大多数人所接受。 在MVC的体系架构中,Controller层负责整个APP中主要逻辑功能的实现;Model层则负责数据结构的描述以及数据持久化的功能;而View层作为展现层负责渲染整个APP的UI。分工清晰,简洁明了;并且这种系统架构在语言框架层就得到了Apple的支持,所以非常适用于AP...
- 下一篇
为什么需要分布式配置中心?
一、前言 对于配置文件,我们并不陌生,它提供我们可以动态修改程序运行能力。引用别人的一句话就是: 系统运行时(runtime)飞行姿态的动态调整! 我可以把我们的工作称之为在快速飞行的飞机上修理零件。我们人类总是无法掌控和预知一切。对于我们系统来说,我们总是需要预留一些控制线条,以便在我们需要的时候做出调整,控制系统方向(如灰度控制、限流调整),这对于拥抱变化的互联网行业尤为重要。 对于单机版,我们称之为配置(文件);对于分布式集群系统,我们称之为配置中心(系统); 二、为什么要有分布式配置中心 1、项目背景 我们现在有一个项目,使用SSM进行开发的,配置文件的话我们知道是一个叫做application.properties的文件。 我们也知道这个配置文件会在项目启动的时候被加载到内存中进行使用的。 2、需求一 由于业务的变动,用户在以前进行注册的时候默认的用户名是“小强”,但是新的领导来了,需要把这个改成“小明”。因为,业务的流量还是比较大的,所以,没有办法在白天流量高峰期修改配置文件,进行重启! 此时,就辛苦开发的小哥了,他们需要等到半夜里凌晨三四点的时候,没有流量的时候,小心翼翼...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池