前方高能,Java程序员最大的悲哀是什么?

Android我爱死你了 2021-09-15 06:07:57
java 后端 程序员


三面头条

前方高能,Java程序员最大的悲哀是什么?_程序员

面试岗位是后台研发工程师,地点选择了上海,通过大佬内推,跳过死亡笔试,加上疫情期间,所以直接视频面,从3点开始,断断续续到晚上8点结束。

一共三轮技术面试,每一轮都要写代码,也喜欢问一些底层知识,让我有点懵逼。

一面:

  1. 写一个题,找一个无序数组的中位数
  2. 写了个快排,然后让我找到无序数组第k大的一个数,我说先排序再找,实际上可以用快排的partition函数。
  3. 快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,建堆的复杂度是多少。
  4. 操作系统了解么,Linux和windows
  5. 说说Linux的磁盘管理,一脸懵逼
  6. Linux有哪些进程通信方式,五大件
  7. Linux的共享内存如何实现,大概说了一下。
  8. 共享内存实现的具体步骤,我说没用过
  9. socket网络编程,说一下TCP的三次握手和四次挥手。
  10. 跳过网络,问了项目的一些东西
  11. 问我如何把docker讲很清楚,我从物理机,虚拟机到容器具体实现稍微说了下。
  12. 问我cgroup在linux的具体实现,不会。
  13. 多线程用过哪些,chm和countdownlatch在实习用过

二面:

  1. 自我介绍Java的集合类哪些是线程安全
  2. 分别说说这些集合类,hashmap怎么实现的,扯了很多
  3. MySQL索引的实现,innodb的索引,b+tree索引是怎么实现的,为什么用b+tree做索引节点,一个节点存了多少数据,怎么规定大小,与磁盘页对应。
  4. MySQL的事务隔离级别,分别解决什么问题。
  5. Redis了解么,如果Redis有1亿个key,使用keys命令是否会影响线上服务,我说会,因为是单线程模型,可以部署多个节点。
  6. 问我知不知道有一条命令可以实现上面这个功能。不知道
  7. Redis的持久化方式,aod和rdb,具体怎么实现,追加日志和备份文件,底层实现原理的话知道么,不清楚。
  8. Redis的list是怎么实现的,我说用ziplist+quicklist实现的,ziplist压缩空间,quicklist实现链表。
  9. sortedset怎么实现的,使用dict+skiplist实现的,问我skiplist的数据结构,大概说了下是个实现简单的快速查询结构。
  10. 了解什么消息队列,rmq和kafka,没细问
  11. 写题时间到。第一题:写一个程序遍历。第二题:写一个插入树节点到一颗排序树的插入方法,使用递归方式找到插入位置即可。第三题:一个有向图用邻接矩阵表示,并且是有权图,现在问怎么判断图中有没有环。第四题:一个二叉树,找到二叉树中最长的一条路径。

三面:

  1. 三面的面试官真的高冷啊,不苟言笑就算了,我问他他都不爱搭理的,搞得我内心慌得一比,感觉凉凉。
  2. 介绍一下项目
  3. 你谈到的并发技术,chm和countdownlatch怎么使用的
  4. 为什么要这么处理,使用线程池是不是也可以。我说也可以
  5. 操作系统的进程通信方式,僵尸进程和孤儿进程是什么,如何避免僵尸进程,我说让父进程显示通知,那父进程怎么知道子进程结束了,答不会。
  6. 计算机网络TCP和UDP有什么区别,为什么迅雷下载是基于UDP的,我说FTP是基于TCP,而迅雷是p2p不需要TCP那么可靠的传输保证,他说不对。
  7. 我说是不是因为要建立连接,开销比较大,他说不对。
  8. 我说p2p的发送节点很多,所以不是那么需要各种传输保证,他说不对。
  9. 我说TCP会自动分包而TCP可以自己定义数据长度。。他还是说不对。
  10. 最后他说算了。我们问下一个吧。操作系统的死锁必要条件,如何避免死锁。写一个LRU的缓存,需要完成超时淘汰和LRU淘汰。我说用lhm行不行,他说用linkedlist和hashmap可以。于是我就写了put和get函数,进行了队头队尾操作。他说get复杂度会不会太高,我瞎掰了半天没找到办法,他说那就这样吧,今天面试到这。
  11. 过期淘汰的处理我还没写呢,你就说结束了,感觉凉了啊,我说我要不要把剩下逻辑说完,他说不用,心凉了一大截~

然后就是HR小姐姐让我等结果了。感觉不对,应该是凉凉~~~

四面阿里

前方高能,Java程序员最大的悲哀是什么?_后端_02

有了前边头条面试的经历,自己也恶补了一些面试常见问题,这次决定试试阿里,毕竟面试不通过不亏,侥幸通过血赚啊。

面试岗位是研发工程师,直接找蚂蚁金服的大佬进行内推,参与了阿里巴巴中间件部门的提前批面试,一共经历了四次面试,拿到了口头offer。

一面:

  1. 自我介绍。
  2. 项目中做了什么,觉得难点在哪里。
  3. Java的线程池说一下,各个参数的作用,如何进行的。
  4. Redis讲一下
  5. 分布式系统的全局id如何实现。用zookeeper如何实现的呢,机器号+时间戳即可。
  6. 分布式锁的方案,redis和zookeeper哪个好,如果是集群部署,高并发情况下哪个性能更好。
  7. kafka了解么,了解哪些消息队列。
  8. 想做业务还是研究。
  9. 然后出了一道题,linux的访问权限是rwx格式的。使用一个类支持访问权限的增删改查,并且注意使用的数据格式以及方法效率,规范。给了一个多小时写题。耗时将近30分钟。

二面:

  1. 介绍你做的项目和其中的难点。
  2. 上次面试官问的问题,反射的作用是什么。
  3. 数据仓库,多线程和并发工具等。
  4. 私有云,docker和k8s等。
  5. 了解哪些中间件,dubbo,rocketmq,mycat等。
  6. dubbo中的rpc如何实现。自己实现rpc应该怎么做dubbo的服务注册与发现。
  7. 问了些排序算法耗时将近30分钟。

三面:

三面不是面试,而是笔试,耗时三个小时,考的是Java核心的基础。但是好像不能透题,就不说了。都挺有难度的。

大概说一下就是有几个考点,Java并发的知识点,集合类,线程池,多线程、高并发之间的通信等。

HR面:

聊人生谈理想,HR小姐姐非常温柔,交流十分愉快。30分钟。

如何快速更新自己的技术积累?

  • 在现有的项目里,深挖技术,比如用到netty可以把相关底层代码和要点都看起来。
  • 如果不知道目前的努力方向,就看自己的领导或公司里技术强的人在学什么。
  • 知道努力方向后不知道该怎么学,就到处去找相关资料然后练习。
  • 学习以后不知道有没有学成,则可以通过面试去检验。

我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目

 CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

前方高能,Java程序员最大的悲哀是什么?_Java_03

前方高能,Java程序员最大的悲哀是什么?_Java_04

版权声明
本文为[Android我爱死你了]所创,转载请带上原文链接,感谢
https://blog.51cto.com/u_15302385/3888064

  1. Open source: Suzhou tourism strategy based on pyecharts visual analysis
  2. 從底層開始帶你了解並發編程,五步搞定Java開發環境部署,
  3. 以商品超卖为例讲解Redis分布式锁,一招彻底帮你搞定HashMap源码,
  4. 从青铜到王者的路线,2021Java者未来的出路在哪里?
  5. JavaScript Advanced Programming (3rd Edition) Reading note 6
  6. 從青銅到王者的路線,2021Java者未來的出路在哪裏?
  7. Quelle est la voie à suivre pour les 2021 Java du bronze au roi?
  8. Prenez l'exemple de la surproduction de marchandises pour expliquer redis Distributed Lock, un tour complet pour vous aider à résoudre le code source de hashtap,
  9. 以商品超賣為例講解Redis分布式鎖,一招徹底幫你搞定HashMap源碼,
  10. Win10系统 java环境配置
  11. Non-ASCII character ‘\xe5‘ in file kf1.py on line 4, but no encoding declared; see http://python.or
  12. 手把手教你搭建微信小程序服务器(HTTPS)
  13. JavaScript Review sketch - 1
  14. sqli-labs-less-18 http头user agent+报错注入
  15. Git下载、安装、配置、配合Intellij Idea实现代码版本控制
  16. NHibernate inheritance
  17. Summary of basic knowledge points of JavaScript language (mind map)
  18. GIT télécharge, installe, configure et implémente le contrôle de version de code avec intellij idea
  19. Sqli Labs - less - 18 http header user agent + Error Reporting Injection
  20. Vous apprendrez à construire un serveur d'applet Wechat (https) à la main
  21. Non - ASCII character 'xe5' in file kf1.py on Line 4, but no Encoding declared;Voirhttp://python.or
  22. 作为一名程序员我不忘初心,Java最新实习面试经验总结,
  23. 作为一名Java面试者你应该知道的,2021最新Java常用开源库总结,
  24. 作为一个程序员,你觉得最大的悲哀是什么,2021年大厂Java岗面试必问,
  25. Configuration de l'environnement Java du système win10
  26. 作為一個程序員,你覺得最大的悲哀是什麼,2021年大廠Java崗面試必問,
  27. En tant que programmeur, quelle est la plus grande tristesse que vous ressentez? L'entrevue d'emploi Java de 2021 dans une grande usine vous demandera:
  28. Comme vous devriez le savoir en tant qu'intervieweur Java, 2021 dernier résumé des bibliothèques open source couramment utilisées pour Java,
  29. En tant que programmeur, je n'oublie pas le dernier résumé de mon expérience d'entrevue de stage en Java.
  30. 作為一名Java面試者你應該知道的,2021最新Java常用開源庫總結,
  31. New feature of Java 8. Stream (). Map (general programming method: collect. Groupingby)
  32. Computer graduation project java + SSM hospital registration system
  33. 作為一名程序員我不忘初心,Java最新實習面試經驗總結,
  34. 使用Docker部署Spring-Boot项目,论程序员成长的正确姿势,
  35. Conseils pour améliorer l'efficacité du Code Java mille fois
  36. 全网首发,我在华为做Java外包的真实经历!
  37. 全套Java视频百度云,终于找到一个看得懂的JVM内存模型了,
  38. 入职3个月的Java程序员面临转正,字节跳动 京东 360 网易面试题整理,
  39. Docker tutorial series (I) introduction to docker tutorial spring cloud mybatis distributed microservice Cloud Architecture
  40. 全網首發,我在華為做Java外包的真實經曆!
  41. Lancement de l'ensemble du réseau, je fais l'expérience réelle de l'externalisation Java à Huawei!
  42. Run around with money? Li Weijia fell into the storm of endorsement! In the face of collective hot discussion, personal attitude has become the focus of attention
  43. 全套Java視頻百度雲,終於找到一個看得懂的JVM內存模型了,
  44. Un ensemble complet de vidéos Java Baidu Cloud a finalement trouvé un modèle de mémoire JVM compréhensible.
  45. Déployez le projet Spring Boot avec docker, et parlez de la bonne posture pour que les programmeurs grandissent.
  46. 关于网络优化你必须要知道的重点,GC 堆排 Tomcat 算法题,
  47. 关于电商秒杀系统中防超卖处理方案简述,Java开发热门前沿知识,
  48. Les programmeurs Java qui sont entrés dans l'entreprise pendant trois mois ont dû faire face à une correction d'échelle, et les octets ont sauté dans le traitement des questions d'entrevue de JD 360 Netease.
  49. What is the new syntax of XX ≠ null in Java?
  50. Spring scheduled task cron expression (@ scheduled)
  51. Une brève description du plan de traitement anti - surproduction dans le système d'arrêt du commerce électronique et les connaissances de pointe du développement Java.
  52. Ce que vous devez savoir sur l'optimisation du réseau, c'est que le problème de l'algorithme Tomcat de gerbage GC,
  53. 凭借这份Java面试题集,成体系化的神级Java进阶笔记,
  54. 凭借这份Java面试题集,BAT大厂面试基础题集合,
  55. Docker Knowledge point collation
  56. Redis sur la réalisation élégante des tâches retardées
  57. 憑借這份Java面試題集,BAT大廠面試基礎題集合,
  58. Avec cet ensemble de questions d'entrevue Java, l'ensemble de questions de base d'entrevue de bat,
  59. Avec cet ensemble de questions d'entrevue Java, les notes avancées Java de niveau divin sont systématisées,
  60. Android Architect path 21 Responsive Programming RX Java thread transformation Principles