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 湖北

相关推荐

自我介绍 AI Coding 你用的是什么工具?你让它帮你写代码还是写测试样例?你怎么做 review 的?你让它生成的是什么代码?八股GolangGolang 的特点是协程,那它是是如何实现的?(不会)那你开发的时候用到了 Golang 的哪些特性?Channel 了解吗?(只知道用来通信的,但没用过)Channel 有哪些类型?这些重要的特性你不熟悉的话,AI 生成代码后如何 code review?(都是 CRUD,数组和哈希,这些我都没见到过)算了,问你 C++ 吧指针使用时有哪些问题?内存泄漏如何做排查和解决?C++ 的垃圾回收机制是什么?那 Go 的 GC 是怎么实现的?Golang 用的是什么框架?Redis你们用的是什么消息队列?基于 Redis 实现消息队列,会消耗内存,代价会不会很高?怎么设计消息队列的生产和提交?分布式锁是如何实现的?SET NX 有什么问题?怎么续锁?续锁时间的设定依据是什么?消费者是如何判断队列中有无数据的,死循环还是轮询?你们用 Redis 存 token,会遇到缓存击穿问题吗?那抛开这个项目不谈,什么情况下会出现缓存击穿,怎么解决?你提到互斥锁,这里要怎么实现?了解过布隆过滤器吗?它能不能用来解决缓存击穿?那布隆过滤器能用来做什么?bitmap 的空间消耗是怎么样的?比如我有 100W 用户,要判断它们存不存在,要开多大的 bitmap?分布式锁除了 SET NX 还有什么实现?Redis 的内存淘汰策略是什么?如果说一个 key 没有设置过期时间,又被删掉了,这种问题怎么解决?key 到了过期时间,会被立马删掉吗?那它什么时候会被真正删掉呢?(追问太快了,本来要在上个问题一起讲的)MySQL你们的 QPS 有测过吗?索引失效场景?MySQL 有哪些锁?哪些场景下会用表锁?你说的这个 UPDATE 未走索引,触发的是全表扫描,不一定会用到表锁有哪些行锁?SELECT ... FOR UPDATE 加的是什么锁?MySQL 什么情况下可能出现死锁?(这个忘记了,只能往操作系统死锁扯一扯了)使用的时候没有遇到过死锁情况吗?你下去再了解一下,主要是在多表读写的时候,需要限制顺序,不然会有死锁数据结构二叉搜索树的数据结构大概长什么样?二叉搜索树的搜索时间复杂度是多少?你提到 2 为底,那 N 叉树的底为多少?红黑树了解过吗?(说了只知道节点有颜色)什么情况下会使用到红黑树?(说了 Epoll 内部用到,其它的就不知道了)那红黑树主要用来解决什么问题?它有什么优势?网络有了解过 HTTPS 吗?它是如何做加密的?它是对称加密还是非对称加密?对称加密和非对称加密的区别是什么?手撕乱序数组中第 K 大的数只要求写对,甚至可以直接调用 C++ 的优先队列,面试官貌似不太懂 C++,问了下 priority_queue 是干嘛的堆排序的复杂度是怎么样的?反问部门业务?金融部门,类似花呗、借呗(那应该挺核的)对应届生的培养机制?大概一个月的培养周期,技术方面和职场方面都有对 AI 对鼓励程度?都会用来提效建议?建议你夯实底层机制后,再利用 AI 进行提效,否则你可能判断不出来 AI 做的是不是对的。特别是对于我们这种金融业务,不能单纯信赖 AI 的几轮业务面?2 轮技术 + HR总结面试官看着像初入职场的,八股给我问爽了,答错的或答不上来的,直接当场就给我讲了
深圳虾皮信息科技有限公司一面458人在聊
点赞 评论 收藏
分享
评论
7
29
分享

创作者周榜

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