15个经典面试问题及答案公考辅导员,蚂蚁金服6面,java线程面试题pdf

  • Java 初始化一个线程池有哪些参数可以配置, 分别是什么作用?

  • 自己写的 Java 应用调优过哪些 JVM 参数, 为什么这么调优?(这个问住了,大佬只知道最大堆最小堆,开 G1,开 GC 日志以及 OOM dumper 这些基本的)

  • 用 Jetty 的时候有没有配什么参数, 为什么这么配?

  • Jetty QTP 等待队列配置成无限的话, 你觉得好吗? 会有什么问题吗?

  • 用过 Linux Bash 里的哪些命令, 分别用它们干嘛?

  • 一道笔试题: 需要在给的链接中作答, 不能 google, 不能跳出, 不能用 IDE:

题目是这样的:

启动两个线程, 一个输出 1,3,5,7…99, 另一个输出 2,4,6,8…100 最后 STDOUT 中按序输出 1,2,3,4,5…100

大佬:用 Go 实现吧 面试官:不可以,用 Java 的 notify 机制实现 大佬::(还没意识到问题的严峻) 那用 Java BlockingQueue 面试官:说不可以, 要求用 Java 的 wait + notify 机制来实现

因为完全没写过 wait + notify,只能表示不会, 面试官说那行吧你可以用 go 写

最后用 go channel 实现了一版, 不过给的网页上不能运行代码,也不知道写得对不对,然后面试结束。

这一轮面试官延续了一面的风格,问完一题就赶忙下一题了,似乎没有表现出对我的回答有兴趣或认可。因此这轮面完,他觉得自己可能又挂了…

三面

  • 依然先聊项目

  • 对监控警报的项目很感兴趣, 问了挺多细节,。最后问了一个问题::现在要你实现一个语义不弱于 PromQL 的查询语言, 你能实现吗?(这里虽然看过一些 Prometheus 的代码,但其实对 PromQL 的 lexer 和 parser 部分没有细看,还好之前因为数据同步项目里想写声明式 Stream SQL 研究过一点 ANTLR,用 ANTLR 写语法 + AST 遍历塞查询逻辑给糊弄过去了。)

  • 觉得做得最深入的项目是什么(当然是数据同步)

  • 聊数据同步项目

  • 问 Linux 掌握得怎么样?(没有系统学习过,基本上是自己运维踩坑积累的)

  • 问 Golang 掌握得怎么样?(用了半年, 看过 effective go)

  • 问算法掌握得怎么样?(到图为止都可以)

  • 问最短路算法(只记得 dijkstra 了,描述了代码流程)

  • k8s 掌握得怎么样?(没有自己写过 controller 和 scheduler,但是对概念都很熟悉,看过 xxx 这几部分的源码)

  • k8s 的 exec 是怎么实现的?(这个问题正中下怀,之前写了 PingCAP 的小作业正好对这块特别熟悉)

这轮聊得顺畅多了。同时发现蚂蚁的面试官似乎挺喜欢让你自己评价:“你觉得自己 xxx 掌握得怎么样?”(只有五位面试官,样本不够大,不能作数哦),这类问题其实我慌得要死,怕吹过头了答不上来,面试挂了事小,丢了面子事大。早知道就预习一下怎么吹嘘了。

四面

  • 介绍一下自己

  • 觉得自己基础知识掌握怎么样

  • 平时一般会用到哪些数据结构?

  • 链表和数组相比, 有什么优劣?

  • 如何判断两个无环单链表有没有交叉点

  • 如何判断两个有环单链表有没有交叉点

  • 如何判断一个单链表有没有环, 并找出入环点

  • TCP 和 UDP 有什么区别?

  • 描述一下 TCP 四次挥手的过程中

  • TCP 有哪些状态

  • TCP 的 LISTEN 状态是什么

  • TCP 的 CLOSE_WAIT 状态是什么

  • 建立一个 socket 连接要经过哪些步骤

  • 常见的 HTTP 状态码有哪些

  • 301和302有什么区别

  • 504和500有什么区别

  • HTTPS 和 HTTP 有什么区别

  • 写一个算法题: 手写快排

这一轮全程问的基础知识,基础扎实的话就没问题了,不过大佬感觉有一点像校招的问法。

五面

  • 介绍一下自己

  • 在 k8s 上做过哪些二次开发?

  • 自己用 Helm 构建过 chart 吗?有哪些?

  • 有没有考虑过自己封装一个面向研发的 PaaS 平台?

  • 配置中心做了什么?

  • 为什么不用 zookeeper?

  • 配置中心如何保证一致性?

  • Spring 里用了单例 Bean, 怎么保证访问 Bean 字段时的并发安全?

  • 用并发安全的数据结构,比如 ConcurrentHashMap;或者加互斥锁

  • 假如我还想隔离两个线程的数据, 怎么办?

  • ThreadLocal,然后举了个例子

  • Golang 里的逃逸分析是什么?怎么避免内存逃逸?

  • 这个不知道,认怂了

  • 对比一下 Golang 和 Java 的 GC

  • 答了一下 CMS、G1和三色标记,我对比的点是 JVM 有分代回收,Go 的 Runtime 没有,没能深入地讲

  • Golang 的 GC 触发时机是什么

  • 阈值触发;主动触发;两分钟定时触发;

  • 有没有写过 k8s 的 Operator 或 Controller?(大佬:没有写过)

  • 谈一谈你对微服务架构的理解

  • 大体思路"微服务本质是人员组织架构演进与关注点分离"

  • 谈一谈你对 Serveless 的理解

  • 大体思路"Serveless 是继 docker 与容器编排之后的又一次应用开发与基础设施提供方之间的边界划分"

  • 你认为 Serveless 是未来吗? 为什么?

  • 大体思路"是云服务的未来,把蛋糕从企业的IT、运维与中间件部门切走,形成规模效应,做得越多赚得越多;公司内的话 servless能够帮助加速前台业务迭代,但对中后台的收益还看不到,未来可能会有比 servless 更适合中后台的架构"

面试官:最后你有什么要问我的?

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

最后的内容

在开头跟大家分享的时候我就说,面试我是没有做好准备的,全靠平时的积累,确实有点临时抱佛脚了,以至于我自己还是挺懊恼的。(准备好了或许可以拿个40k,没做准备只有30k+,你们懂那种感觉吗)

如何准备面试?

1、前期铺垫(技术沉积)

程序员面试其实是对于技术的一次摸底考试,你的技术牛逼,那你就是大爷。大厂对于技术的要求主要体现在:基础,原理,深入研究源码,广度,实战五个方面,也只有将原理理论结合实战才能把技术点吃透。

下面是我会看的一些资料笔记,希望能帮助大家由浅入深,由点到面的学习Java,应对大厂面试官的灵魂追问

这部分内容过多,小编只贴出部分内容展示给大家了,见谅见谅!

  • Java程序员必看《Java开发核心笔记(华山版)》

  • Redis学习笔记

  • Java并发编程学习笔记

四部分,详细拆分并发编程——并发编程+模式篇+应用篇+原理篇

  • Java程序员必看书籍《深入理解 ava虚拟机第3版》(pdf版)

  • 大厂面试必问——数据结构与算法汇集笔记

其他像Spring,SpringBoot,SpringCloud,SpringCloudAlibaba,Dubbo,Zookeeper,Kafka,RocketMQ,RabbitMQ,Netty,MySQL,Docker,K8s等等我都整理好,这里就不一一展示了。

2、狂刷面试题

技术主要是体现在平时的积累实用,面试前准备两个月的时间再好好复习一遍,紧接着就可以刷面试题了,下面这些面试题都是小编精心整理的,贴给大家看看。

①大厂高频45道笔试题(智商题)

②BAT大厂面试总结(部分内容截图)

③面试总结

3、结合实际,修改简历

程序员的简历一定要多下一些功夫,尤其是对一些字眼要再三斟酌,如“精通、熟悉、了解”这三者的区别一定要区分清楚,否则就是在给自己挖坑了。当然不会包装,我可以将我的简历给你参考参考,如果还不够,那下面这些简历模板任你挑选:

以上分享,希望大家可以在金三银四跳槽季找到一份好工作,但千万也记住,技术一定是平时工作种累计或者自学(或报班跟着老师学)通过实战累计的,千万不要临时抱佛脚。

另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

t/forums/4304bb5a486d4c3ab8389e65ecb71ac0)

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值