首页 / 软件开发2024笔面经
#

软件开发2024笔面经

#
2324830次浏览 48213人互动
哈喽春招的软开人,快来分享下你的笔试面试经验吧~无论是成功后的经验总结,还是失败后的反思,都值得被记录下来,也一定会帮助到更多小伙伴!
此刻你想和大家分享什么
热门 最新
阿里巴巴高德出行java/go实习
不是哥们这也能过?????居然约二面了????1.自我介绍2.mysql引擎了解吗3.你觉得不同引擎有什么区别?我们经常用innodb,innodb好好在哪里?我们一般什么时候不用innodb?4.mysql死锁了解吗?-5.自己建张表,写两个事务,写出死锁的例子。6.你觉得有个服务有2个接口,调用这两个事务,这会发生什么?业务层上监控的指标会有什么变化,能想到啥说啥?你觉得XX指标变化的量级会是多少?7.业务上一般怎么处理mysql死锁?8.现在有一个服务,有10个接口,其中2个高qps(1w)的接口分布调了上面的两个事务,其他8个接口(qps1k)也读这个库,那8个接口你觉得监控指标会发生什么变化?你觉得XX指标变化的量级会是多少?9.它在mysql底层是为什么呢?10.mysql一般我们用事务用什么隔离级别?11.可重复读和可串行化的区别是啥?12.它在mysql底层是为什么呢?换句话说可重复读的实现原理是什么?可串行化的实现原理是什么?是什么导致了它们的区别13.讲讲mysql下索引。14.聚簇索引底层和非聚簇索引底层是什么?15.现在我们有张表用uuid建表,有张表用自增id建表,1kw行记录,添加数据的效率谁更高?为什么?16.接着15的场景,我们建完表了,其他数据都一样,只是一张表是uuid作为主键,一张表是自增主键,谁的查询效率高?为什么?17.讲讲你对一般怎么排查慢查询sql。18.你提到了一个阈值,阈值一般怎么设置?慢查询优化阈值一般设定死的吗?19.你在other提到了临时表,你觉得临时表什么时候会出现?-20.自己建张表,写个sql,写出单表查询的场景下出行临时表的例子。21.你用过redis吗?你一般用redis干什么?22.redis的数据结构你了解多少?24.你如何利用redis实现个分布式锁?现成的可以讲讲原理?用原生的redis怎么做,讲讲加解锁的逻辑?25.为什么跳表时间复杂度是log(N)?-26.自己举个跳表的例子,来说明他平均查询复杂度是log(N),最好直接公式推导。27.redis里面我们经常提有大key和热key,你分别讲讲大key是啥,热key是啥?28.大key会导致什么,热key会导致什么29.你觉得有个服务有1个接口,调用这个redis的大key/热key,这会发生什么?业务层上监控的指标会有什么变化,能想到啥说啥?你觉得XX指标变化的量级会是多少?30.现在有一个服务,有10个接口,其中1个低qps(100)的接口调用了大key/热key,其他9个接口(qps1k)也读这个库,那8个接口你觉得监控指标会发生什么变化?你觉得XX指标变化的量级会是多少?31.redis支持持久化吗?32.AOF在文件里面存什么?RDB在文件里面存什么?33.你觉得AOFRDB混合持久化会丢数据吗?会在哪个范围丢数据,为什么?一个redis实例一般会丢失多少数据,这个数量级是多少?34.AOF持久化的时间有哪些?35.现在有个redis cluster,8个主,有个宕机了,缓存命中率会下降多少,为什么?36.你了解一致性哈希吗?37.一致性哈希的话,有个宕机了,缓存命中率会下降多少,为什么?38.一般一致性哈希中会提到一个虚拟节点,虚拟节点是用来干什么?39.加了虚拟节点的一致性哈希,有个宕机了,缓存命中率和不加虚拟节点一不一样,为什么?40.你一般用kakfa干什么41.kafka如何实现顺序消费?kafka本身内部实现讲讲?业务层有什么保证顺序的手段讲讲?42.现在有一个kafka,消息堆积了,你觉得为什么会消息堆积?业务层一般会怎么处理消息堆积问题?43.接着42,它消息堆积,我把它扩容了,原来20台机器我扩容成40台,但是消费者的tps没变,这是为什么呢?想想所有可能的原因,能讲多少是多少?44.kafka一个分区可以被多少一个消费者组内不同消费者消费吗?一个消费者可以同时消费多个topic吗?45.你讲讲对线程安全的理解吧。46.比如说现在有个concurrenthashmap,你不对他加锁就进行一些叠加操作,这个可能会有问题吗?为什么?47.你用过哪些锁?48.reentlock相比于syn在使用上有哪些更优秀的地方?49.reentlock底层原理展开讲讲。50.讲讲reentlock支持可重入锁特性的源码是怎么设计的?51.讲讲reentlock支持区分公平和非公平特性的源码是怎么设计的?52.由你设计一个动态线程池,你会怎么设计?53.java线程池过程?java线程池原理?54.threadlocal,怎么用?什么东西在栈上?什么东西在堆上?为什么设计成弱引用,不是容易内存泄漏吗?55.mybatis星号和井号有什么区别?-56.自己写个sql,能实现sql注入。#牛客在线求职答疑中心##实习,投递多份简历没人回复怎么办##阿里巴巴##我的实习求职记录##软件开发2024笔面经#
ybluea:哥们你触犯天条了吗,实习问五十多个问题
查看55道真题和解析
点赞 评论 收藏
分享
25后端秋招进度及碎碎念及分享
bg 末流211本(非北邮等211强校...) 非科班 滴滴京东快手字节蚂蚁五段实习业务: 广告领域1年半 电商库存风控低代码订单都了解过目前拿到的全是提前批的 字节: 8.12 已发意向[第一批] 签了腾讯: 8.23 已发意向[第一批]蚂蚁: 9.2 已经意向 bat齐了滴滴: 9.13 已发意向 新锐百度: oc谈薪了 拒了~小红书: 意向了虾皮: 拒面携程: 拒面快手: 拒面b站: 笔试完泡 不面了美团: 简历挂京东: 简历挂淘天: 简历挂秋招结束!碎碎念:提前批12场技术面全过秋招今年没有了美团和快手的大力支援,感觉对很多朋友们都有一些寒气希望大家别放弃正式批又让我想到了自己的大一下的4月, BOSS投了100多家,所有大厂都投了, 毫无回音, 当时是真的有一种不该选择计算机的很难受的感觉, 身边的舍友也不是这个方向的开始嘲笑自己,还挺难过摆烂了玩了两周觉得其实找不到也没事的, 反正当初学计算机的目标就是20k的工作 从5月开始重新背八股, 重新改简历, 一切都从头再来, 又BOSS投了300多家, 终于有了京东滴滴的约面还是希望大家约面的 就珍惜每一次面试的机会, 没约面的 就继续加油就好啦~毕竟还有冰冰陪你正式批0约面呢人生的容错率向来很高,即使最后没进大厂又如何呢,进了又如何呢,看透打工人本质了只是一份工作而已,只是起点而已,我身边也有比我厉害很多的人,比我有钱很多的人,只要做到自己满意开心就够啦过好当下的每一天,天天开心点儿分享:最后给大家分享一点点改简历及聊业务的经验吧我们从一个电商秒杀例子开始说简历上描述: 用Redis+lua脚本解决了茅台酒抢购秒杀问题可以怎么优化呢?1.QPS预估可以写上, 毕竟QPS如果是10 还需要这个吗?2.秒杀还有什么方案呢?比如10000请求 我只有1000个库存 丢弃3000请求是不是也可以, 当然可以, 返回给用户重试就好(偷偷说:京东就会丢弃非京东会员的)3.如果Redis+lua脚本宕机了怎么办呢?是不是我们可以想到会打到数据库? 那就分库分表是不是我们可以想到降级限流? 那就选择限流访问数据库4.那么如果你是一个电商实习的同学你会想到什么呢?是不是有可能支付时间过长导致rpc超时支付失败? 我们可以尽量减少回调时延如果抢到了 不付钱怎么办?那我们可以减少订单可支付的时间,快速回流单子, 如果用户多次这样 我们以后就把它的请求黑名单丢弃掉(业务方案)业务上的问题还有好多好多, 比如如果真的超卖赔钱方案是什么,超卖的检测怎么做(减少损失)?那最后你用了lua脚本 是不是得考虑下lua脚本原理是打包redis命令呢?所以其实很多同学只不过没想到这些, 多想想就好啦,大家都是从不会过来的!技术的方案怎么解决这个问题?多看看中间件原理及使用!业务的方案怎么解决这个问题?多搜搜网上的业务方案对比!描述业务就是: 为什么用我现在的方案替代了原来的方案, 业务收益我从原来xxx变成现在xxx业务数据流 业务架构  自己的思考 就好啦~ 碎碎念和分享就到这里啦~ 希望大家秋招顺利!#秋招##字节##百度##腾讯##蚂蚁##滴滴##求职##软件开发2024笔面经# #软件开发投递记录#
双非鼠不想认输:巨佬
点赞 评论 收藏
分享
11-05 15:58
已编辑
西安交通大学 C++
华为面经,线下三轮面试
华为一面:项目提问傅里叶变换是什么傅里叶变换有哪些用处cache是什么,有什么好处使用cache有什么需要注意的地方cache有几级,每一级什么特点嵌入式系统需要注重哪些凭经验答的,性能,稳定性,功耗,系统资源,答了四点面试官点头了手撕:字符串解码,hot 100,力扣题号:394华为二面:全程项目及实习提问实习做了什么,怎么做的项目整体设计框图,画一下项目代码如何测试的,黑盒白盒灰盒测试知道哪些,有什么区别介绍课题用了什么方法,现有方法有什么弊端,创新性是什么,最终取得了什么效果除了测试这个知识点,本轮未涉及其他八股手撕:输入为一个数组与一个数字k,能否分组,使得每一组都刚好有k个相同的元素。思路为哈希表+取模判断主管面:自我介绍最骄傲的事情最沮丧的事情如何看待华为这家公司最近遇到最大的压力答了课题相关那段时间的作息,怎么应对的从早干到晚这个课题有和别人合作吗有什么实际的用处吗关于这个课题,有团队合作吗,你是怎么和他人沟通的课题结束了吗,后面还会研究什么非数学专业,为什么参加数学竞赛,讲一下过程先答了自己有一定的兴趣和天赋(吹的),然后讲了下拿的过程,后面强调了通信与数学的联系,本人课题与组内其他人研究方向,都涉及了大量的数学推导,后面答了通信的尽头是数学。好像说到面试官心坎里去了,面试官重复了这句话。华为文化,讲一下,怎么理解的幸好昨天看了下,奋斗,以客户为中心什么的为什么选择华为面试官之前讲了我很匹配,所以我先讲了匹配度,然后讲平台成长什么的反问:部门做啥的啥时候开奖具体还没定,应该是11月下旬或者之后,多和HR沟通-------------------------------------------------------------------------------------------------------------面的是无线部门,所以会涉及到一些通信知识,面完有几周了。一些总结:八股不好准备,靠积累了,问的比较分散;项目与课题问的偏多,要很熟悉。算法题准备常见题就好,没见过的一般比较容易。#华为开奖那些事##华为求职进展汇总##软件开发2024笔面经##offer##华为##牛客创作赏金赛#
查看27道真题和解析
点赞 评论 收藏
分享
11-14 19:01
已编辑
上海交通大学 C++
华为面经/通用软开
机考300+11.5日线上一天面完一面 50min自我介绍问毕设(机器学习方向),怎么优化,有没有用过cuda,cudaNN,详细介绍毕设实现,深挖毕设细节。公派交换情况了解笔试复盘手撕一道二分搜索,秒了反问:1.为什么不问问我的开发项目,回答:部门业务你进来后会熟悉不怎么需要问。(没怎么听懂,后来问二面面试官了解到可能是一面面试官正好负责偏ai方向的项目。)2.非科班是否有竞争力,回答:更加看重能力,以及学习能力。一面结束后立刻通知通过二面 60min二面面试官十分和蔼热情,面试体验极好自我介绍问专业名称是机械吗,做的毕设是AI相关的,问实际工作意向问实习,实习收获对本部门业务领域的看法(因为说明了由师兄推荐所以投递)擅长的语言考研目的留学交换经历介绍,为什么要去交换(这里吐槽了一下留学浪费了实习时间,被安慰说经历宝贵)然后开始问八股对数据结构与算法的了解,介绍堆栈介绍一下树介绍一下几种排序算法操作系统相关的,进程线程,内存系统。。。汇编这一块了解的多吗(坦诚回答不怎么熟练)计算机网络,TCP/UDP,socket,结合项目说说应用。八股问完后面试官表示虽然是非科班但是学的很多有没有读博的想法华为最打动你的是什么地方(回答说对非科班也很重视等,面试官比较认同)进入华为后的职业规划准备,走技术还是走管理路线笔试复盘,对BFS/DFS的理解手撕一道链表交点,双指针秒了因为基本上我们都在互相提问,所以貌似没有反问环节结束前让我好好准备主管面,说了句加油二面结束后10分钟收到通过短信主管面 30min主管面面试官也十分和蔼,不是压力面自我介绍项目或者学习过程中遇到的最大的挫折说说考研的目的说说转码的目的做过领导性质的工作吗,擅长什么运动?聊聊对华为企业文化以及加班的理解介绍一下出国经历说说华为在你这里的排序以及优先级(直接就是表忠心)反问:大概多久会开奖比去年会早,保持和对接人的联系沟通面试完10分钟收到面试结束短信当晚11;45准时收到反馈邮件第二天25小时后官网页面显示通过,开泡整体面试感觉非常好,尤其是二面面试官非常善于引导,许愿offer更新 11.14日保温,反应面评不错,大概率14a,已上报赶第一批oc#软件开发2024笔面经##牛客创作赏金赛##哪些公司面试官让你印象深刻?##如何判断面试是否凉了##华为##机械人面试中的常问题##华为求职进展汇总##华为池子有多大##C++#
黑森林兔头:一天面完。。绝了😢
查看53道真题和解析
点赞 评论 收藏
分享
03-22 20:22
复旦大学 Java
淘天一面
#软件开发2024笔面经# 八股集合,汗流浃背,但是确实学到了很多内容,是以前没有仔细看过的。目前记起来一些,后续想起来别的了再补充 #我的实习求职记录# 操作系统Linux平常使用吗线程和进程的区别,还有什么类似进程和线程的吗什么是协程CPU满了怎么看,怎么办Linux下rm正在写入的文件会发生什么?那么该如何在不使用kill的情况下删除该文件磁盘满了怎么看进程状态以及特殊两种状态僵尸线程和孤儿线程是什么清空进程时什么进程还存活?网络tcp三次握手四次挥手为什么不能两次握手如何解决tcp包的粘连udp和tcp的区别udp如何变得安全Java基础hashmap的底层hashmap.get之后会发生什么什么时候链表转红黑树什么时候红黑树降级jmmJvm区域及作用老年代常用垃圾处理算法多线程threadlocal有没有使用threadlocal底层是什么(哈希表)threadlocal底层哈希表的key是什么数据库两种引擎区别事务的原理数据库的四大特性如何保证隔离性隔离级别分别有哪些MVCC有什么用什么是死锁。如何解决sql数据库如何解决死锁sql锁Spring基础springboot运行原理bean如何加载,循环依赖?aop底层了解什么设计模式代理模式在spring哪里使用过单例模式在spring哪里使用过包装者模式在spring哪里使用过接口类代理和非接口类代理的区别中间件redis基本类型Redis缓存穿透,击穿,雪崩及解决方法,bitmap项目相关常见限流算法
搞啥呢bro:太狠了,问这么多
点赞 评论 收藏
分享
头像
10-10 11:06
已编辑
门头沟学院 前端工程师
70场面试,复盘我遇到的有趣问题(四)
        今天分享一下美团和蔚来面试中遇到的一些问题。1.(蔚来二面)在forEach和map里面对遍历的值进行改变会影响原数组吗        认真背八股的同学肯定都记得,forEach不会返回新的数组,只是遍历每一项并做计算,map会返回新的数组,所以理所当然的想map不会改变原数组,forEach...会怎么样??想到这里就错了,这也是我当时的思路。        事实上这个问题跟上面那个八股完全没关系。试想一个函数,传递了参数进来并改变这个参数,会不会对原来数据进行改变呢?这个题是在靠这个,需要分类回答。        数组中数据为基本数据类型时,forEach和map都不会改变原数组;数据为引用数据类型时,map和forEach都会改变原数组。在使用 forEach 和 map 方法时,对引用类型元素的修改会直接反映在原始数组中。这是因为引用类型的元素实际上存储的是引用(内存地址),而非值本身。因此,通过引用可以访问和修改原始数组中的元素。而number,string,Boolean,null,undefined这些基本类型在栈内存中直接存储变量与值。2.(美团到家一面)为啥会出现箭头函数        这一个问题可以去b站渡一老师的小视频里看看。        肯定很多人跟我一样第一时间想到的是箭头函数和普通函数的区别,那为啥有这些区别,为啥要单独搞个箭头函数出来?难道只是为了简单吗。其实原因只有一个:消除函数的二义性。 在出现箭头函数之前,函数可以直接被调用,也可以被new当作构造函数使用,这就是函数的二义性。而这种二义性的存在是会给开发带来负担的,因为创建者并不知道未来函数的调用者是如何使用这个函数的,所以后来先在命名上做了规范:小写开头的函数是直接使用的,大写开头的是构造函数。但这种规范也不是强约束,毕竟既可以Number(),又可以new Number(),所以为了消除这种二义性,创造了箭头函数和class,箭头函数只能() => {},当作普通函数调用,而class只能被new,这就刚好对应二义性的两种用法,解决这种复杂情况了。————————10.10补充————————        感谢牛u的提示,这边还有一个点补充。        箭头函数的出现解决了this的复杂指向问题。        举例如图3所示,当调用show方法打印this.x的时候打印的是undefined。这是因为当代码执行到了setTimexout( )的时候,此时的this已经变成了window对象(setTimeout( )是window对象的方法),因此会在window上查找x,找不到,就输出undefined。        而如果是箭头函数,箭头函数的this是定义时就确定的,因此箭头函数的this指向的是obj,输出的就是obj.x。这样就解决了普通函数在当作回调函数传递的时候this变化带来的麻烦,否则就要用全局变量或者闭包之类的方法。3.(美团到家一面)obj对象中有一个方法,用obj.a()和(obj.a)()去调用分别输出什么(a方法中输出this.name,obj和全局都有一个name属性)?        这个题其实是当时考的一个输出题(图1)。下来尝试了一下,答案是没区别,都输出obj对象中的name。        这个题我一开始以为(obj.a)()这种调用就跟let b = obj.a,然后调用b()这种形式一样,但不是这样的,这个点可以记一下。        然后还要注意的一个点是,如果这个方法是箭头函数的形式(图2),那么this指向就不一样了,指向的是window。所以会在window上面去找name。那么这个时候输出什么?        是不是很多人脱口而出,“输出hong!”        恭喜各位掉到新坑了,这个时候输出是空(什么都没有:“”)        因为let和const定义的变量是不会挂到window对象身上的,如果改成var就能输出hong了,大家可以自行尝试一下、        (上面这个点个人认为还是很细的,一定要小心)                这几个是自己踩过的坑,第三点应该很多同学都会想错。        欢迎各位评论区交流~#24届软开秋招面试经验大赏##软件开发2024笔面经##美团##蔚来##前端#
菠萝包lime:佬说的太棒了,箭头函数这块我也看的渡一的视频,当时被问到还是挺爽的,直接从二义性回答。
点赞 评论 收藏
分享
瑞幸java校招二面(史诗级80min)
#软件开发2024笔面经#  一面(1h)已经顶不住 二面直接再送20min面到头皮发麻自我介绍 问会什么语言(java python)开始java基础:arraylist和linkedlist区别(秒了hashmap和concurrentHashmap区别(秒concurrentHashmap为什么线程安全(秒java多线程:多线程如何协同操作(秒饿汉模式懒汉模式区别(秒jvm:线上飙升cpu怎么排查(秒常见参数配置(秒设计模式:知道哪些设计模式(答了七个)抽象工厂和工厂方法区别(秒session token cookie区别(秒服务断开了session失效吗讲一下csrf攻击(秒tcp为什么三次握手不能两次四次(秒redis:redis缓存穿透(null值 布隆过滤器)布隆过滤器返回true or false更可信(false 一定不存在)场景题 一亿条数据 五万个前缀一样 怎么取 (keys info:* 或scan)mysql:介绍索引(秒内连接左连接区别(秒场景题 查询学生成绩大于90的 (用group by和having)负载均衡算法(两大种)负载均衡有哪几层(四层七层)nginx在哪一层(不会讲一下cap理论(三个特性)cap理论为什么不能三者共存(√)接口幂等性实现方案(数据库 jvm 分布式锁)dubbo:dubbo怎么感知服务下线(服务监控 心跳检测)dubbo用了什么通讯协议(不会瞎答)dubbo重试机制分布式 ID 介绍(秒雪花算法重复id问题分布式锁常见实现方案(秒算法java爬楼梯(秒)排序算法如何实现和时间复杂度了解什么消息队列kafka:kafka消息如何保证顺序(秒kafka消息回退处理(秒问简历实习(写的太多了不懂原理介绍实习 系统架构dubbo接口管理平台,公司elk有没有二次开发(没接触查询超时接口 链路分析traceIdselect for update实现,还有什么方式能确保加锁elasticSearch深分页(没答好websocket 基于什么协议 tcp 在nginx怎么配置(忘了charles抓包dubbo显示什么 k8s configmap作用(不会感觉面试官很强,也有引导,前面基础答得ok,后面实习的dubbo知识被拷打
QTY_01:面完狠狠点一杯星巴克
查看41道真题和解析
点赞 评论 收藏
分享
头像
08-21 12:16
已编辑
华南理工大学 golang
字节抖音电商三面
体验不错,面试官全程笑嘻嘻的,有一种打工人互相交流的感觉,聊到了腾讯和字节的方方面面自我介绍1、让我说一说go语言。(没错,非常宽泛的问题,啥东西都没有,就让我说一说go语言,我实在无从谈起,就从Java和go的对比出发谈了一下。)2、谈一下go的并发模型,为什么是通信共享内存,而不是共享内存来通信3、GMP,具体是怎么调度的?4、协程和线程区别,协程的轻量级具体体现在哪里?5、mysql事务你了解多少?(又是一个非常宽泛的问题,谈了acid,具体谈当哪一个是怎么实现的,undolog原理,mvcc原理,事务的隔离级别以及不同隔离级别可能出现的问题,readview里面的各种id,readview如何解决不可重复读,如何解决幻读,当前读快照读,间隙锁,redolog原理,总结就是把小林coding mysql事务那一段结合业务聊了好几分钟)6、聊业务,实习项目,具体介绍(我一个人讲了好久,期间谈了一下腾讯的一些系统,面试官说的比较多的是啊,你们是这样的呀,我们字节巴拉巴拉)7、算法题:下一个最大的数,其实就是下一个排列,我一开始太rz,以为是找上一个比自己大的数,写成了单调栈,过来发现不对劲,第2次直接ac了。8、非科班是如何学习的,最后问我是不是25届的,反问业务,有什么建议,三面后还有技术面试吗?总结,很顺利的面试,因为都是开放问题,所以没有卡壳,算法题也是小插曲但是ac了,希望最后给个见hr姐姐的机会😃😃最后求个花花======================8.21更新   已约hr面 #软件开发投递记录# #软件开发笔面经# #软件开发2024笔面经#
我什么都不会😭:你不成功谁成功呀,羡慕死了
查看11道真题和解析
点赞 评论 收藏
分享
头像
03-14 12:22
已编辑
门头沟学院 Java
腾讯云二面 3/14 10.00
#软件开发2024笔面经# 上来先自我介绍,介绍完问了半小时实习然后问了很多场景题和八股差不多半小时1.有两张表一张商品表,一张订单表,要查询数据,应该考虑做些什么呢2.商品类型适合做索引吗3.商品下单的时候,要做一些什么考虑呢4.数据库层面怎么保证数据原子性呢5.如果把订单表放在redis里面怎么保证一致性呢6.如果数据表非常大,做查询的时候要做些什么考虑呢7.tcp为什么要三次握手呢,两次握手不行吗8.如果要你做一个qq之类的通讯功能,你会选择什么协议呢9.用长连接还是短链接呢10.如果用长连接的话,有大量的用户同时连接,会出现一些什么问题呢11.会给服务器哪些方面带来压力呢,内存、CPU、磁盘还是什么呢12.对于CPU的压力,要怎么解决呢(说的是加服务器)13.单台服务器怎么做呢14.有用过netty之类的吗,NIO、BIO、AIO之类的15.操作系统内核层面怎么做优化呢16.java的线程模型和操作系统的线程模型17.如果用UDP的话,要考虑一些什么问题呢18.UDP的话,除了丢包问题还有什么问题呢19.如果用HTTP的话,要考虑一些什么问题呢20.常用的web服务器会遇到的问题有那些呢21.共享桌面写一个多线程的题,创建10个线程,主线程要在这10个线程执行完成后执行,很快写了个例子但线程忘记start了(汗流浃背了),然后面试官提醒才加上去22.家是哪里的23.为什么想要去深圳发展最后问评价,面试官说今天也一起聊了很多,他也不能给出具体答案,需要跟其他面试者做横向对比后才给通知今天面的汗流浃背了,感觉又要二面寄在这里了-----------------------------------更------------------------------------------------面完差不多半小时,又回到复试页面了,是还有三面的意思吗
chenxinxu:不是,这场景题我是一个都不知道怎么答,这得做过相关的商业级应用才会考虑得到吧,正常复习八股刷题怎么才能有这种见识啊
点赞 评论 收藏
分享
头像
08-29 09:30
已编辑
小米集团_软件开发工程师
哈啰面经-已offer
1.你对Java的容器有什么了解?Java容器类包含List、ArrayList、Vector及map、HashTable、HashMap、Hashset线程安全的list:CopyOnWriteArrayList2.Set和Map使用场景有什么差别Map是键值对,Set是值的集合,set可以用来判断元素是否出现,map可以记录元素出现的次数3.他们的底层实现你了解吗HashSet的底层实现是HashMap,数组+链表&红黑树4.他们底层确实有关联,你刚刚提到Hashcode,它在hashmap中的作用是什么?哈希码的作用是确定对象在hash表中的位置;任何类都有hashCode()方法5.你说一下hashmap底层的结构数组+链表+红黑树6.用hashcode怎么判断是否是有冲突的呢? hashCode() && equals()7.Hashcode的计算目标可能是对象,怎么判断是否相等(equals) 8.在长度大于多少的时候链表转为红黑树 89.删元素的话红色树是否会转回链表呢?会的10.hashmap如果发生线程不安全的情况会出什么问题?(这些问题出现在jdk1.7和1.8中)多线程put导致元素丢失put和get并发时,可能导致get为null,因为put导致扩容,此时线程get可能为空11.追问:还有其他问题吗?您用的是JDK什么版本?1.8,扩容的时候可能会出问题,链表删除的时候会出现问题12.你说一下hashmap的扩容过程?扩容有什么优化可以让他变得更快?HashMap是一种基于哈希表实现的键值对存储结构。在HashMap中,每个键值对都被映射到一个桶中,桶是哈希表的基本单位,多个键值对可能被映射到同一个桶中。在HashMap的内部实现中,当哈希表的元素个数超过了负载因子(load factor)与容量的乘积时,就会触发扩容操作。HashMap的扩容过程主要包括以下几个步骤:【1】创建一个新的哈希表,其容量是原来的两倍,同时重新计算每个键值对在新哈希表中的桶位置。【2】将原哈希表中的所有键值对重新分配到新哈希表的相应桶中。【3】将原哈希表的引用指向新哈希表,完成扩容操作。为了优化HashMap的扩容过程,可以考虑以下几点:使用位运算代替取模运算:在计算哈希值时,位运算比取模运算更快速,可以减少计算哈希值的时间,从而加速哈希表的插入和查询操作。假设哈希表的容量为n,计算哈希值时可以使用以下位运算:对于2的整数次幂n,可以使用按位与(&)运算代替取模运算。h&(n-1)对于任意正整数n,可以使用位移运算和按位与(&)运算代替取模运算。index = (h ^ (h >> 16)) & (n - 1)13.了解过多线程么?线程创建方式有哪几种?Extends thread,实现runnable,利用线程池14.如果打断线程?wait,join(等另一个线程执行结束才会往下执行),interrupt(中断)15.线程池的核心参数?16.线程池在什么情况下会触发拒绝策略?17.对数据库有多少了解?说一下事务的四大特性事务具有4个基本特征,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Duration),简称ACID【A】事务的原子性是指事务必须是一个原子的操作序列单元。事务中包含的各项操作在一次执行过程中,只允许出现两种状态之一,要么都成功,要么都失败【C】一个事务在执行之前和执行之后,数据库都必须处以一致性状态,比如A扣了钱,B就应该加钱【I】事务的隔离性是指在并发环境中,并发的事务是互相隔离的,一个事务的执行不能被其它事务干扰。【D】事务的持久性是指事务一旦提交后,数据库中的数据必须被永久的保存下来18.mysql的存储引擎InnoDB存储引擎--【事务安全】MyISAM---默认存储引擎19.有个sql执行的比较慢,你有哪些优化策略?Explain20.组合索引什么时候生效?(a,b,c)如果组合索引中的索引都在,则索引全部生效如果想要使用一个或者两个字段在where条件上,必须有组合索引里的第一个字段order by 只能使用a,才能用到索引21.有个表,(姓名,年龄,性别,),我想查性别为女的姓李的女性,怎么建索引?建索引是建在值比较分散的属性上的,比如性别,是不应该在这个属性上建索引的拓展:在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。22.我想查姓李的所有人的名字,select * from table和select name from table是一样的吗?回答要从聚簇性索引和非聚簇性索引方面考虑,把这个*的内容都返回,底层会做什么操作呢?总结问题:返回的时候返回所有列和单独返回一个列,对数据库底层来说有什么区别从聚簇索引的角度来看,如果表table已经按照name列进行了聚簇索引,则SELECT name FROM table WHERE name LIKE '李%'查询会更有效率。因为聚簇索引将数据物理上按照索引列的顺序进行排序,相同的值会被存储在相邻的位置,这样就可以更快地查找和扫描查询,因为它们可以减少I/O操作的次数。当我们执行SELECT name FROM table WHERE name LIKE '李%'时,由于只需要返回name列的值,聚簇索引可以更快地扫描满足条件的行,并返回结果。相比之下,SELECT * FROM table WHERE name LIKE '李%'则需要查找整个行,这意味着需要更多的I/O操作,从而可能降低效率。因此,从聚簇索引的角度来看,SELECT name FROM table WHERE name LIKE '李%'查询更有效率。23.如何保证redis和Caffeine数据是一致的?如果db更新成功,缓存更新失败怎么办24.如何保证本地缓存的一致性?#牛客解忧铺##面经# #秋招##牛客在线求职答疑中心#  #软件开发2024笔面经# #软件开发笔面经#
哈罗出行开奖10人在聊 查看24道真题和解析
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客企业服务