安恒 Java 面经

Linux相关命令
HTTP 和 https有什么区别
HTTP1.0和http2.0有什么区别
购票业务如何实现的?
如何实现的高并发高流量的购票呢?
缓存如何添加的?
消息队列了解吗?
HashMap是怎么实现扩容的?
ArrayList是怎么扩容的?
Linkedlist 在什么情况下是无序的?
如果我把linkedlist的数据一个一个放进一个数组里面,什么情况下,从数组取出来的数据会和我想象的顺序不一致?
Spring事务失效有几种场景?讲一下
算法,判断一个链表是否有环?
如何判断环的入口?
不用hashmap怎么实现?
Rocket MQ是怎么配置的?
Sentinel是怎么配置的?
有没有自己打通过前后端交互,Nginx有了解过吗?

反问

面试官人很好,回答不上来的也会提醒一点思路
许愿二面
时间大概20多分钟 #牛客解忧铺#  #24届软开秋招面试经验大赏#  #安恒#
全部评论
你好,你的问题好多呀,我来一个一个回答吧。 1. HTTP和HTTPS的区别:HTTP是超文本传输协议,用于在万维网上传输信息,而HTTPS是在HTTP的基础上增加了SSL/TLS安全协议,用于加密数据传输,提供更安全的数据传输。 2. HTTP1.0和HTTP2.0的区别:HTTP1.0是早期的HTTP协议,只支持文本传输,而HTTP2.0支持多路复用,可以同时传输多个请求和响应,提高了传输效率。 3. 购票业务如何实现:购票业务通常使用数据库来存储票务信息,用户通过客户端提交购票请求,服务器处理请求,从数据库中扣除相应的票数,并将购票信息写入数据库。 4. 如何实现高并发高流量的购票:可以通过负载均衡、分布式架构、缓存、消息队列等技术来提高系统的并发处理能力和吞吐量。 5. 缓存如何添加:在应用程序中,可以使用缓存来存储一些常用的数据,以减少对数据库的访问次数,提高系统的响应速度。常见的缓存有Redis、Memcached等。 6. 消息队列了解吗:消息队列是一种异步通信机制,用于在不同系统之间传递消息。常见的消息队列有RabbitMQ、Kafka等。 7. HashMap是怎么实现扩容的:HashMap的扩容是通过重新计算哈希值,将原来的数据重新分配到新的数组中实现的。 8. ArrayList是怎么扩容的:ArrayList的扩容是通过创建一个新的、更大的数组,然后将原数组中的数据复制到新数组中实现的。 9. Linkedlist 在什么情况下是无序的:Linkedlist是一个双向链表结构,每个节点都有一个指向前一个节点和后一个节点的指针,正常情况下,Linkedlist是有序的。但在特殊情况下,例如多线程环境下,可能会导致Linkedlist的无序。 10. 如果我把linkedlist的数据一个一个放进一个数组里面,什么情况下,从数组取出来的数据会和我想象的顺序不一致:如果在将Linkedlist的数据放入数组时,没有按照链表的顺序进行,那么从数组中取出来的数据就可能与你想象的顺序不一致。 11. Spring事务失效有几种场景:Spring事务失效的场景包括:方法不是public的、方法没有被Spring管理、事务传播属性设置错误、异常被内部捕获等。 12. 算法,判断一个链表是否有环:可以使用快慢指针法来判断一个链表是否有环。快指针
5 回复 分享
发布于 2023-10-24 21:38 AI生成

相关推荐

04-15 14:28
已编辑
Java
程序员小白条:学院+两段经典项目+技术栈,最大众的简历,纯看运气
点赞 评论 收藏
分享
上周组里招人,我面了六个候选人,回来跟同事吃饭的时候聊起一个让我挺感慨的现象。前三个候选人,算法题写得都不错。第一道二分查找,五分钟之内给出解法,边界条件也处理得干净。第二道动态规划,状态转移方程写对了,空间复杂度也优化了一版。我翻他们的简历,力扣刷题量都在300以上。后三个呢,就有点参差不齐了。有的边界条件没处理好,有的直接说这道题没刷过能不能换个思路讲讲。其中有一个女生,我印象特别深——她拿到题之后没有马上写,而是先问我:“面试官,我能先跟你确认一下我对题目的理解吗?”然后她把自己的思路讲了一遍,虽然最后代码写得不是最优解,但整个沟通过程非常顺畅。这个女生的代码不是最优的,但当我问她“如果这里是线上环境,你会怎么设计’的时候,她给我讲了一套完整的方案——异常怎么处理、日志怎么打、怎么平滑发布。她对这是之前在实习的时候踩过的坑。”我在想LeetCode到底在筛选什么?我自己的经历可能有点代表性。我当年校招的时候,也是刷了三百多道题才敢去面试。那时候大家都刷,你不刷就过不了笔试关。后来工作了,前三年基本没再打开过力扣。真正干活的时候,没人让你写反转链表,也没人让你手撕红黑树。更多的是:这个接口为什么慢了、那个服务为什么OOM了、线上数据对不上了得排查一下。所以后来我当面试官,慢慢调整了自己的评判标准。算法题我还会出,但目的变了。我出算法题,不是想看你能不能背出最优解。而是想看你拿到一个陌生问题的时候,是怎么思考的。你会先理清题意吗?你会主动问边界条件吗?你想不出来的时候会怎么办?你写出来的代码,变量命名乱不乱、结构清不清楚?这些才是工作中真正用得到的能力。LeetCode是一个工具,不是目的。它帮你熟悉数据结构和常见算法思路,这没问题。但如果你刷了三百道题,却说不清楚自己的项目解决了什么问题、遇到了什么困难、你是怎么解决的,那这三百道题可能真的白刷了。所以还要不要刷LeetCode?要刷,但别只刷题。刷题的时候,多问自己几个为什么:为什么用这个数据结构?为什么这个解法比那个好?如果换个条件,解法还成立吗?把刷题当成锻炼思维的方式,而不是背答案的任务。毕竟面试官想看到的,从来不是一台背题机器,而是一个能解决问题的人。
牛客51274894...:意思是光刷力扣还不够卷
AI时代还有必要刷lee...
点赞 评论 收藏
分享
评论
8
22
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务