shopee暑假实习 测试一面面经

废话不多说,直接上内容吧

首先是面试官的自我介绍,来自哪个部门主要负责一些什么业务

然后正式开始面试

先简短自我介绍一下

首先问了一下项目中的内容,以及安卓开发app的文件格式以及相关的配置。

问了一个web服务器的请求设计成http还是https比较好(主要是问htttp和https的区别)

问了搜索框的实现过程(http请求)

如何对搜索框进行测试(说了功能,性能,用户角度),面试管提了安全角度,自己嘴碎提了一嘴sql语句注入,面试管开始拷打sql注入的知识以及sql注入怎么写(不太会)

手撕sql语句,查找两表中从没有购买任何东西的用户(输出id和name都行),有两个表(一个用户表,一个订单表)(我用distint实现的,面试官问是否有其他方法,本人比较菜实在想不到了,面试官说考虑在第二个表中用聚集函数的方式实现)

问了一下linux中查找日志的命令以及关键字异常错误的查找(tail -f),面试官问grep是否也可以,脑子一热说了不知道哈哈,还有cat也问了一下。

问了一下抓包的实现,有用过哪些抓包工具(fiddler和wireshark),是否有使用过web开发者工具,有对哪些数据进行过抓包

如何在fiddler软件中抓包https请求的包(主要想问操作和配置,自己也记不太清了)

问了数据库了解多少,有了解过redis,讲讲redis的三大问题以及如何解决

问了线程和进程的区别,以及多线程如何保证线程安全。

最后问了问常用的软件测试方法和测试样例设计方法,讲讲区别。

手撕数组峰值,********上的原题很简单,思路和代码都很简单,但是编译竟然出问题了没有出结果,面试官让说一下具体思路以及实现以及代码中用了vector,讲讲底层实现,然后说思路代码没啥问题就结束了。

最后就是反问环节

问了问面试官部门常用测试方法,以及测试与开发的占比以及自动化和手工的占比。

面试官也指出了我面试中存在的一些小小问题,真的会很感谢,shopee面试体验感真的很棒,也只有之前在美团面试的时候有感受过这么耐心和温柔的面试了。

面试官说后续会有hr联系后续进程,开始许愿了。

全部评论
如果有需要,最近mhy开了一批,可以看看首页信息
1 回复 分享
发布于 2024-05-22 08:36 上海
线程和进程区别: 线程是进程中的一个执行单元,共享进程所拥有的资源,如内存空间、文件描述符等。这使得线程间的通信变得简单快捷,因为线程可以直接读写共享数据,无需使用特殊的通信机制。然而,这也意味着线程间的同步和互斥变得尤为重要,以避免数据竞争和不一致性的发生。 进程则是操作系统分配资源的基本单位,它拥有独立的地址空间和资源,因此进程间的通信需要通过显式的机制,如管道、消息队列和共享内存等来实现。这使得进程间的通信相对复杂,但也带来了更高的安全性和稳定性,因为不同进程间的数据互不影响。 关于多线程如何保证线程安全,主要有以下几个方面的考虑: 互斥访问:当多个线程需要访问共享资源时,必须确保同一时刻只有一个线程能够访问该资源。这可以通过使用互斥锁(如Java中的synchronized关键字或Lock接口)来实现。互斥锁能够确保同一时间只有一个线程进入临界区,从而避免了数据竞争的发生。 原子操作:原子操作是指一系列不可分割的操作,不会被其他线程中断。在多线程环境下,需要保证原子操作的执行,以避免数据的不一致性。Java中提供了AtomicInteger、AtomicLong等原子类来实现原子操作。 可见性:多个线程同时访问同一个变量时,需要保证对该变量的读写操作对其他线程是可见的。这可以通过使用volatile关键字来确保变量的可见性。volatile关键字会禁止指令重排,并确保变量修改后立即同步到主内存,从而保证了变量的可见性。 线程本地存储:线程本地存储是指每个线程都有自己独立的内存空间,线程之间的数据不会相互影响。这可以通过使用ThreadLocal类来实现线程本地存储,从而避免了线程间数据竞争的问题。
1 回复 分享
发布于 2024-05-19 10:22 广东
佬是硕士吗?
1 回复 分享
发布于 2024-05-18 17:18 重庆
请问需要有开发经验嘛
点赞 回复 分享
发布于 2024-05-28 14:24 北京
题都一模一样,不会是一个三十多岁的姐姐吧,感觉她像个老师,每一个我没说全的点她都会补齐,然后我说的比较浅显的她也会深入的解释。
点赞 回复 分享
发布于 2024-05-18 20:22 湖北

相关推荐

2025-11-23 14:11
已编辑
门头沟学院 Java
11.19 一面1、自我介绍2、问了一下实习经历做的什么3、项目- 项目经历挑一个最难的点说一说- 为什么选择rocketMQ- 缓存一致性(canal具体是怎么操作的)- 会不会有超卖问题- 限流流程4、八股- JVM内存管理(如何避免内存泄漏)- hashmap数据结构(为什么增加了红黑树)- synchronic原理、项目中有用到吗、使用的注意事项- 线程池有用过吗,有什么注意事项- 线程数为什么这么选择- 慢SQL排查与解决- 双亲委派模型(是什么、为什么这么设计)- spring怎么解决循环依赖5、Linux- 查询线程的cpu占有率(列表、最高)- 查找文件- 编辑文件(小、大文本)6、微服务- feign和hystrix有了解吗- 熔断有了解吗,它是为了解决什么问题7、网络- 三次握手四次挥手减一次行不行8、ai相关- 有了解过ai吗- 提示词优化有了解吗- rag有了解过吗- 数据分析数据处理方面有了解过吗(讲了numpy那些,都还很入门,汗流浃背了)- 有没有学习过什么数据库之类的(讲了mnist手写数字数据库)这个数据库有什么实际应用场景吗9、编程题按层打印一棵树(写出大概率逻辑就行)10、反问总结:感觉自己知识面还是有点窄了,Linux部分没怎么答上来,ai部分也臭臭的,继续努力。还有就是回答的时候不够全面,有的平常看会了但答的时候还是漏了,还是多练吧面试官人很好,答不出来他也说没关系的,还会引导着说,反问的时候很诚恳的鼓励和建议,暖暖的11.21 出结果
查看27道真题和解析
点赞 评论 收藏
分享
2025-12-03 00:50
北京邮电大学 Java
从八月初开始准备秋招,从那时候开始背八股背项目刷lc一天能刷二十几道,八月尾投递了第一份简历,九月初第一个一面,十月第一个二面,第一个线下面,到十月末第一个offer,十一月没怎么面试,几个终面的公司接连收到感谢信,恰好收到运营商的线下面试邀请,于是想着换个地方换换心情,去的前一天收到第二个offer沟通,回来这天收到华子报批的信息,好像整个人终于松懈下来了;虽然跟同校其他大佬收获的offer比,我的offer很一般,但是自己有几斤几两还是很清楚的hh,因此就愉快地接受了事实签了三方;签的公司了解起来好像还不错,希望能够wlb一点,春招或许我都不会投递了(是真的很懒的一个人),毕竟接下来几个月忙毕设不会怎么复习面试,如果进不了大厂那我目前的offer就是最好选择了。下面是一些一面后就没推进的公司的面经:字节后端开发工程师-抖音生活服务-一面:JWT token与传统登录验证有什么区别;JWT详细过程;JWTtoken怎么验证;用户信息在gateway中验证,怎么传递给下游微服务;微服务与微服务之间如何相互调用;微服务如何注册到注册中心,微服务宕机注册中心怎么发现;为什么要用ES,ES如何实现倒排索引,ES分片和副本是什么;联合索引abc,查询ac可以匹配联合索引吗场景:用户表用号码作主键有什么缺点?事务的ACID属性,如何保证原子性;split中为什么要对"."字符写成"\\."这样。Shopee一面:有没有用单元测试订单放入延迟队列,用的什么作为延迟队列,还有哪些组件可以作为延迟队列Redis底层数据结构以及怎么实现/string  listRedisson分布式锁怎么使用的,申请锁的命令,为什么要用分布式锁,分布式锁有哪些问题,怎么解决= !=  <> in notin等查询能不能匹配索引聚簇索引与非聚簇索引的区别用户态和内核态的区别,怎么切换,系统调用的情景TCP的拥塞控制/流程,慢启动什么的NIO,BIO区别,NIO下线程一次能处理几个IO操作怎么在大文件无法被加载进内存的情况下判断某数据是否存在其中对无法加载进内存的大文件里的数据进行排序TP-LINK一面:登录校验方式分别有什么,JWT校验的重点在哪里,加密方式解密方式Redisson分布式锁,以及redis与数据库的数据一致性线程同步方式-关键字,乐观锁,悲观锁为什么要用消息队列处理下单模块里的订单生成,如果消息处理中间件down了怎么办nacos作用,以及nacos崩溃了怎么办TCP四次挥手及close_wait状态用户态切换到内核态方式美团地图搜索-后端开发:介绍项目;项目难点;Linux命令;Linux进程太大,怎么排查;客户端和服务端部署在Linux上,从启动到交互的过程是什么;数据库索引结构;算法题:pow(x,n)中移互联网一面:削峰填谷,对于某些时刻访问量特别大的请求,怎么解决;mysql单个实例的最大访问量是多少;缓存和数据库怎么同步?定时事务?消息队列MQ?多个缓存实例怎么同步;分布式事务情景,上锁,扣减等操作,失败的场景;reverse数组,最少操作次数。小红书共四面,方向是广告营销一面问项目,项目重难点,项目怎么提升;Redis优缺点;Redis数据结构;穿透,击穿,雪崩的情况;MySQL锁的级别;死锁发生情况及解决;垂直分库与水平分库,数据表多大数据会涉及分表;消息队列了解哪些;手撕:数据库一道group+having count(*)+LC151作业帮一共三面 两轮技术面+hr面一面 40minHashMap结构,底层,是否线程安全,不安全在哪个点;安全的Map-ConcurrentHashMap,怎么保证线程安全;CAS在ConcurrentHashMap里怎么使用;SpringBoot事务,及事务失效情况;分布式事务,TCC;最终一致性在订单下达上的体现--消息队列;如何保证消息队列消息能够被正确消费;Redis基础数据类型及底层,还有哪些数据类型;缓存击穿及解决;Redis分布式锁只能锁一个资源,那怎么才能达到锁多个资源;一亿个手机号存储在数据库,怎么在Redis层面判断当前登录的手机号已经注册;MySQL事务隔离级别及解决了哪些问题;索引失效情况;limit 100000,10怎么优化;介绍一个项目优点;Redis缓存预扣,再扣减数据库,此时对数据库操作失败了怎么办;项目2相关;手撕--删除链表重复元素;反问:岗位业务;面试流程。43993-4轮面试, 1-2周进度一面:自我介绍;DDD介绍,与三层架构的对比;怎么理解微服务;处理服务实例宕机的情况;项目从前端到后端怎么设计(数据传递,代码设计等);Get和Post怎么传递数据,代码实现;线程池怎么使用,多线程;Redis分布式锁,集群怎么使用;自己介绍一个点;Redis集群之间数据不一致怎么解决;Java学习路线,未来规划;反问:面试轮次,反馈时间;业务;华测导航三面:技术+人事+业务总监一面30min:Java集合;项目;Mysql存储引擎,索引底层;MVCC;SpringCloud;技术栈拓展;反问:公司介绍,岗位bg;流程;二面15min:人事面;自我介绍;部门理解公司理解;秋招经历;薪资需求;个人bg;回顾这些面试内容好像又身临其境了,大多数面试的感受还是很好,面试官都很平静,有的面试官会更严肃一些,有的会轻松一些;口音也是天南海北的,北方南方,还遇到一个偏向两广口音听起来有点费劲;还有就是我感觉面试官之间的习惯也是不同的,有很多人说,面试官说感谢你的时间这句话就是挂了,但其实不是,有的面试官习惯说这句话而已。线下的面试华子那次,很惊讶于自己竟然能够通过三次面试,一面的面试官很专业也不会压力人,二面面试官问了一些关于项目的问题,让我自己介绍最重要的部分,他还给我另外的机会推销自己(先说我介绍的部分没有很打动他,建议我再想想有没有什么想说的),或许是看我很努力,也是给我通过了,三面主管面的面试官聊得很深入也很细致,最后还站起来祝我秋招一切顺利心想事成,出了大厦就收到hr小姐姐的消息说我面试通过了,说到这里也要很感谢一直和我联系的hr,她从我暑期投递华子的时候添加的微信,这次秋招也是她联系我投递的部门,前期笔试,性格测试她还特意打电话告诉我一些关键点,期间我觉得希望渺茫也跟她沟通也是很认真地跟我聊,虽然后期她由于职位变动不负责我的批次投递了,但是还是祝她工作顺利;第一个二面给了科大讯飞,虽然最终没有通过流程终止,但在九月末收到二面面试预约,还是给我在迷茫的九月一点加油鼓劲,让我的十月有一个奔头,相信这是努力的回报;十月相对于九月来说面试还多一些,因此十月虽然累但是心里挺有干劲的;十月尾收到第一个oc,犹豫再三还是拒掉了,离家太远且当时觉得好多流程都还没推进,不太甘心就这么签了;十一月慢慢过,再收到了一个oc,综合方面都挺好的,所以干脆签了,刚好毕设选题也确定了,接下来就是慢慢做毕设享受最后半年的大学时光了。秋招这几个月,在论坛里发过的牢骚和迷茫不少,还好有同样纠结的同学们,一起whisper建议和方向,一起加油打气,祝网友和坛友们都能收获满意的offer。
点赞 评论 收藏
分享
评论
7
29
分享

创作者周榜

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