首页 / 计算机
#

计算机

#
882634次浏览 8359人互动
此刻你想和大家分享什么
热门 最新
26届腾讯QQ暑期实习后台开发一面面经
贴主会更新每一个面试的面经,可以点进贴主主页查看其他面经(都会写的详细),可以关注我获得最新面经通知。总结基本纯八股,基本没有问项目,算法两道贴主的第一次面试(3.11图里是3.10是因为延后了一天),全程十分的紧张。首先面试官让自我介绍,应该是想从我的的介绍里引出问题,可是过于紧张只介绍了自己目前的大学大三的一名软件工程学生,没有谈到任何项目和获奖经历,面试官听完我讲完愣了一下,才开始转入面试1.现在主推语言(先说大二Cpp,大三做项目转Java)2.介绍一下java中的集合(先紧张卡壳了一下,然后讲了Collection和Map两方面,讲到Map的时候面试官继续发问)3.说到HashMap,他是线程安全的吗?(回答不是,然后说有CurrentHashMap有线程安全)4.CurrentHashMap怎么保证线程安全(回答使用了分段锁,介绍了分段锁机制)5.那除了你刚刚说的CurrentHashMap还有什么方法保证HashMap线程安全(又答了个synchronizedMap,也是通过锁的机制保证线程安全)6.那还有使得HashMap线程安全的其他方法吗(没答上来)7.那CurrentHashMap相比于synchronizedMap,通过不同的加锁方式,哪一个性能更好(这我不知道也没答上来)8.HashMap怎么解决冲突(细说了拉链法解决哈希冲突,提到了哈希表变大之后会变成红黑树存储)9.红黑树应用于哈希表性能好在哪里?(我从时间复杂度上解释O(logn)优于O(n))10.还有其他的解决哈希冲突的方式吗?(想起来有线性探测法,但是说不出详细的)11.查看简历后询问mysql包含哪些索引(组件索引,普通索引,唯一索引,全文索引,然后说了下索引工作方式)12.mysql常见存储引擎(InnoDB,介绍了innoDB的机制)13.InnoDB的底层数据结构(B+树,说了B+树的结构)14.为什么不用B树呢?(先说B+树相对于B树的优点,其中提到使用B+树磁盘读写性能更高)15.怎么使得读写性能更高?(从B+树存储和查找原理入手,B+树叶子结点存储数据,非叶子结点存储索引,从而使得每个节点存储更多索引信息,降低树的高度,B+树进行查找路径更短,所以磁盘读写操作更少)16.详细讲讲为什么范围查找性能更好?(从B+树节点有序相连入手,叶子结点通过指针相连形成有序链表,使得查询一旦找到要查的的范围起始点,就可以沿着链表顺序快速访问,而且B+树结构非常适合二分查找,相对的时间复杂度会更低)17.说B+树的时候提到了Redis也应用了有类似于B+树优势的数据结构,面试官直接抓住发问Redis使用情况(讲了项目里对Redis的使用)18.Redis常用的数据结构(String项目里用来存储用户信息,set项目里使用来管理帖子赞踩以及并集管理共同关注,还有list和sorted set)19.那Redis里的Hash你有用过吗?(又是Hash,这部分我背的不熟,老实交代用的不熟练)20.Sorted Set的底层数据机构是什么?(先想起来有一个跳表,面试关追问还有吗,想了很久说压缩链表,并说只知道名字,不知道具体实现,因为我前面说到的都细致解释了)21.问Redis持久化机制(回答两种,RDB持久化和AOF持久化)22.马上询问RDB底层的运行原理和具体执行(说了自动配置和手动配置,提到BGSAVE)23.追问BGSAVE具体执行(老实交代只记得这个命令,对底层执行还不清楚)24.开始问计网,TCP和UDP(细说了TCP的三次握手和四次挥手和UDP传输快但是不可靠)25.TCP的头部结构说一下(开始按顺序说TCP的头部存储的不同参数)26.那头部里的校验和占多少位?(16位)27.http中403错误码什么含义?(禁止访问,服务器拒绝客户端发送的请求,权限或者资源问题)手撕算法,面试官调试腾讯会议上面的ide,调试了五分钟没搞好,让我自己直接在自己的ide上写十五分钟内完成快速排序和二叉树中序遍历用c++写,二叉树写的时候被要求不能用递归要用迭代法算法都不难,但是因为没有腾讯会议上的输入样例提示,面试官也没说具体的输入样例核心逻辑很快就写好了,但是样例的输入尤其是二叉树那里一时没处理好(向输入前序然后输出后序来着)到时候面试官上来说因为没有在腾讯会议上写,就不要求运行写输入样例了,要求我细说两个算法的逻辑即可28.快速排序——经典的分治算法,寻找一个基准数,将小于他的排左边,大于他的排在右边,然后递归处理左右两边29.快排稳定吗?(不稳定)30.细说快排不稳定的原因(依赖于交换操作,可能导致数值相等的元素排序后相对位置发生变化)31.说几个稳定的排序算法(冒泡排序、插入排序、归并排序)32.二叉树中序遍历——利用栈模拟递归过程,首先将根节点以及其左子节点一次入栈知道左节点为空,然后弹出栈顶节点,再将右子节点作为新的根节点,重复这个过程到时间了,让我反问,不知道说什么,就问面试官,这是我的第一次面试,您认为我的表现如何,面试官官方回答:”我只是如实的记录你的面试表现然后把档案给上面的leader进行横向评估,这不由我说了算而由leader说了算。“也不知道这样反问稳不稳妥,说出去的时候其实就有点后悔了,然后向面试官道谢,面试结束。
wuwuwuoow:说说我自己对这些八股的理解,有问题可以一起讨论: 1.CurrentHashMap,面试官应该是想让你回答 JDK1.7 和 JDK1.8 的实现区别,为什么 1.8 的更好?1.7 是分段锁,但是锁的粒度还是比较大。所以 1.8 做了改进,如果目标位置上的节点为 null,就先 CAS 把节点直接放进去,避免加锁。如果目标位置存在节点,就使用 synchronized 对“头节点”加锁,接下来读写链表或红黑树就可以保证线程安全了,因为只有一个线程能访问该链表或红黑树。总结就是 CAS + synchronized 更小的锁粒度 + 避免创建 Segment 节约内存 2.哈希冲突的解决方案。开放寻址法,在数组中找到下一个位置放入元素,常见的有线性探测、二次探测、双重哈希。在 ThreadLocal 中,就采用了线性探测法;拉链法,典型的就是 hashmap;扩容,hashmap 和 ThreadLocal 都有通过扩容的方式解决哈希冲突,会设置一个负载因子,比如 0.75,达到该值就扩容。一般就是「扩容+拉链法」解决,拉链法可以解决哈希冲突问题,但哈希冲突多了性能就差了,通过适当地扩容可以降低因哈希冲突过多导致的性能问题,但不限制地扩容又浪费内存。所以要在内存和性能之间做权衡
点赞 评论 收藏
分享
26届阿里云暑期实习Java开发一面面经
总结:项目+mid算法+计网八股,只没答上一个sql语句贴主会更新每一个面试的面经,可以点进贴主主页查看其他面经(都会写的详细),可以关注我获得最新面经通知。贴主的第二面(之前腾讯是第一面,这次更有经验了)首先自我介绍,把面试官引到我擅长的项目上1.询问项目的亮点答:登录注册模块采用邮件注册,密码存储采用MD5加密与加盐,登录使用Kaptcha验证码验证,拦截器进行登录状态检查;使用Redis做本地缓存,使用Redis集合数据类型来处理赞、踩,相互关注;使用Spring的声明式事务管理保证数据的一致性;使用Kafka作为消息队列对系统进行解耦,在用户操作后通过消息队列异步处理推送,避免同步操作性能瓶颈2.数据库存储的密码是明文还是加密答:加密的,用户输入的明文密码拼上盐值加密后存入数据库3.了解非对称加密和对称加密吗?答:了解,对称加密用同一个密匙,非对称有一对密匙,一个公匙,一个私钥4.哈希加密了解吗?答:了解,我使用的MD5加密算法就是哈希加密算法5.哈希加密对于对称加密和非对称加密的优点答:计算速度快,能快速对数据进行加密处理,而且是单向加密不能解密,就算我的后端数据库被攻破,也无法从数据库存储的密码中还原密码6.在项目中使用Spring和不使用相比Spring有什么好处?答:细说了IOC和依赖注入优点,AOP优点,事务管理优点,MVC优点7.项目中用到了什么设计模式答:第二个项目手写Spring,创建Bean用了工厂模式,保证容器中一个Bean只有一个实例用了单例模式,实现JDK动态代理和CGLIB代理使用了代理模式,处理请求采用责任链模式等8.讲一下责任链模式优缺点答:优点是解耦,每个阶段可以单独进行配置与扩展;缺点是不好调试,定位哪一个处理者出问题得一个个排查,还有责任链太长会降低性能9.你知道状态模式吗?答:行为设计模式之一,允许对象在内部状态改变时改变他的行为,但是我在项目中没有实际应用这个模式,所以没说展开10.享元模式知道吗?答:结构性设计模式,目的是减少对象创建数量,从而降低内存占用,比如说在我的论坛项目里,像用户名,头像这些需要频繁储存的数据就可应用享元模式,把常用的用户基本信息作为享元对象存入Redis作本地缓存11.你平时会看什么书吗?答:平时基本在学校看教材,假期会阅读一些小说、杂志12.你写代码最看重的一点是什么?答:想了一会说可维护性,然后论证了可维护性的重要性13.你觉得什么时候应该用事务,什么时候不应该用事务?答:事务就是一组操作,我要保证这一组操作的原子性时就应该使用事务,要么全部完成,要么全部不做,避免出现数据不一致情况14.看到我简介上的算法获奖经历,问我15分钟选一个难度的题目手撕,我怕15分钟写不出hard就选了中等手撕算法-LeetCode原题反转链表2   7分钟速通要求Java写,但是平常写算法都用的cpp,一开始写链表虚拟头结点用cpp写法导致报错,但改掉后成功ac15.来一道场景题,有一个合同,合同会和很多个应用关联,问我创建几个表合适答:创建三个表,一个是本身的合同表,一个是应用表,还有一个关联表,合同-应用关联表,关联表绑定两个外键16.如果创建表式要求几张表同时成功或者同时失败,如何写Java代码保证事务一致性答:使用Spring的声明式事务管理,使用@Transactional注解,就可以做到事务的原子性(同时成功或同时失败)17.要求写出上面的场景题,查出合同表中的top 5个金额最高的,连带查询出相关应用信息答:这里写了一会,对JOIN的运用不熟练,没能成功写出SQL语句,算是这个面试唯一没答上来的18.(面试官1说另一个面试官要来考察一下我的基础)我在浏览器输入https://www.taobao.com后,背后会发生什么样的网络请求?答:(窃喜,这是背的八股的第一大条)首先是DNS解析请求,...(过程省略);然后是TCP连接请求...(过程省略);然后就是HTTP请求,浏览器根据输入的url构造HTTP请求报文,...(过程省略);(说到这才发现是HTTPS)紧急补充,使用HTTPS协议,在TCP连接建立之后还会有一个SSL握手请求,会进行身份验证、密匙交换等操作,进一步保证信息安全性;最后页面加载完成还会有一些资源请求,比如CSS文件,JS文件;19.说说HTTP请求数据逐层传输最后到二进制传输经历的过程答:应用层HTTP协议把要传输的数据比如请求方法、请求头组成一个HTTP报文;然后HTTP报文到达传输层,传输层使用TCP或者UDP协议,TCP协议会给HTTP报文加上TCP头部,包含源端口号、目的端口号这些信息,根据三次握手建立可靠连接后,将封装好的TCP报文发出去;数据段到达网络层,网络层主要用IP协议,IP协议再给TCP数据段加上IP头部,包含源IP地址和目的IP地址;封装好的数据报来到链路层,链路层把IP数据报封装成帧加上帧头和帧尾,帧头包含源MAC地址和目的MAC地址,帧尾包含效验信息,然后就以2进制在链路层传播了20.网络传输到网络层,是如何找到下一跳发往哪,根据什么协议和算法?答:依靠路由协议,说了RIP和OSPF,RIP基于距离向量算法,...(省略原理),15跳不可达,收敛慢;OSPF协议基于链路状态算法,每个路由器会先了解周围链路状态,像数据结构里的图一样生成拓扑结构,然后把这些信息发送给网络中其他路由器,然后根据迪杰斯特拉算法计算出最短路径更新路由表,收敛快且适用于更大网络规模21.你在学校里成绩如何答:先说了基础核心课比如计网、数据结构、操作系统都学的很好,批斗了一下学校教的过时课程(20年前的破jdbc和web),说这些课我认为上的必要不大,所以没有学的很认真,这些课成绩差些,所以总体成绩不算很好,但是工作用的工程能力和算法能力锻炼的很好22.你的教育背景不错,今天也看出你的基础也很扎实,为什么你不选择去做算法工程师而是选择做开发呢?答:首先回答算法工程师要研究生起步,我对自己的规划就是本科不读研参加就业,而且在开发上我累计了一定的基础,做出了一定的成绩,也比较享受开发的成就感,而算法方面学了机器学习,感觉更偏向数学领域,就不是很感兴趣,最后还是决定选择做开发。反问环节:1.问了工作地点答:北京2.问了实习薪资答:说他也不知道结束,总用时1h
嵐jlu:可以关注贴主,我还会更新接下来的每一个面试的面经,都会记录这么详细,帮到你了就给帖子点个赞吧
查看22道真题和解析
点赞 评论 收藏
分享
点赞 评论 收藏
分享
昨天 12:56
已编辑
北京大学 量化分析
量化|卡方科技26届秋招已开!!!
关于我们: 上海卡方信息科技有限公司是专注中国二级市场提供数智化交易服务的金融科技企业,融合AI算法、技术实现、市场理解三项核心能力,以全球领先的算法交易服务体系,提升包括券商、私募、公募等在内市场全主体的交易技术水平,稳定市场定价波动,融合监管要求,使算法交易在安全、合规、公平框架内释放创新潜能,为中国证券市场注入源自AI的新质生产力。我们的QUANT团队拥有顶尖研发能力,团队规模位列国内前十,由奥赛金银铜奖得主、百亿私募大厂及海内外顶级对冲基金的成员组成,核心成员在顶会顶刊发表多篇成果,兼具TOP学术背景与丰富实战经验。我们专注打造技术驱动型核心竞争力--自主搭建近千平米超算中心,构建覆盖数据处理、算法研发,交易执行的全流程基建底座,以硬核技术实力支撑策略高效迭代。我们是中国算法交易领域的绝对领军者--估值达数十亿,股东阵容融合国内头部券商(国泰海通、广发证券、东方证券)以及全球顶级投资人,正同步加速开拓全球市场。加入我们,和优秀的人一起合力开拓无垠的科技版图。团队背景:海内外顶级对冲基金/顶会顶刊TOP学术背景/省高考状元/奥赛金银铜奖/百亿私募大厂招聘对象:揽月计划:薪资:40000元/月+奖金摘星计划:2027届本硕博应届毕业生可申请提前转正需保证3个月及以上的线下实习时间薪资:1000-2000元/天日常实习:2026届及以后毕业的本硕博同学薪资: 500元/天招聘岗位:策略研究员/AI算法研究员/开发工程师1)策略研究员/AI算法研究员(不限方向)【职责描述】1.负责投研工作;2.追踪领域内前沿技术和方法,推动算法的持续改进。【任职要求】应聘要求:1.2026届及以后毕业,在读于国内外知名高校,数理基础扎实,研究能力突出;2.具备扎实的编程能力,熟练使用python进行数据处理和分析;3.具有较强的创新能力和自我推动力,热爱对未知领域的深入探索,善于与团队协作沟通;4.能独立推进项目,并进行多任务处理,能发现并解决问题,并对业务结果负责。开发工程师岗位职责1.参与平台的开发与优化;2.参与算法的落地与持续优化;3.衔接投研团队与技术团队。应聘要求1.毕业或在读于国内外知名高校,理工科专业;2.熟练掌握C++、Python;3.沟通良好,逻辑清晰。加分项1.低延迟或高性能计算相关经验;2.各类竞赛获奖经历。可接触实盘交易系统的核心模块参与前沿技术的落地验证行业顶尖导师+「个性化」定制职业发展路径「反内卷」工作模式+智能化办公环境「无笔试」+实习直通「全职OFFER」工作地点:上海陆家嘴面试流程:投递简历、首轮面试、2轮面试、最终面试发放OFFER招聘要求对此项目感兴趣的理工学霸,请随同简历附上本科RANK/GPA、项目经历、学术竞赛、论文发表等信息通过校园大使进行投递。若获得其他校招正式offer,请告知HR或在邮件中写明,可优先安排简历筛选和面试流程,以便尽早推进后续环节。内推码:DSszbJQH内推链接:https://app.mokahr.com/campus-recruitment/kafangtech/150982?hash=%23%2Fjobs填写内推码获得优先面试权,如有疑问/流程问题欢迎沟通,可帮查投递进度流程————引流
点赞 评论 收藏
分享
最新前端场景题,热乎的
前端求职圈
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客网在线编程
牛客网题解
牛客企业服务