思源智通

收藏
教育
暂无
不需要融资
北京

0

在招职位

284

面试经验

0

真题试卷

查看官网
上传简历
此刻你想和大家分享什么
职位类型
全部
最新
热门
已OC,本来被拒的,结果hr告诉我说十几个人面试有4个通过技术面录取2个我第3,第2不来了,补录。hr上午突然打电话问意向,联系背调走审批流程下offer了一、技术面拷打项目BookDone讲一下电子书的解析流程 责任链模式讲一下数据存储 oss,mysql结合业务问数据库表设计线程池参数,核心线程数多少,线程池原理redis的常用数据类型有哪些项目中哪里用了分布式锁,为什么不直接redis会有啥问题redis获取所有keys,忘了redis怎么实现分布式锁,setnx分布式锁为用了什么?Redisson,为啥用它?用redis会有什么问题。分布式锁原理项目中用了sse,讲一下sse是什么八股1.ArrayList和LinkedList的区别。底层数据结构不一样,所以crud时间复杂度不一样2.看你用了sse问个计网,三次握手是什么?详细讲了过程,syn,ack。为什么不能用两次握手,服务端发给客户端的消息不能够准确接收。继续追问,不会了sql问个sql问题,加联合索引(a,b),select where b =1,a=2可行嘛?不可行,违反最左匹配原则更新一下:我答错了,应该是可以,有a就行,引擎会优化,我没注意到这一点,这个问题问的挺有水平的那如果改成select a,b,c where a=1,b=2但性能还是不好,可能的原因是什么?没答出来面完想了一下,应该是要回表查询,当时没反应过来算法题单链表判断有环怎么判断,说一下思路。快慢指针,快指针一次进2个,慢指针一次进1个,有环会相遇,没还不会相遇退出条件是什么?没有环,快指针判断fastcur!=null。有环fastcur==slowcur反问:1.公司业务是什么,去了做什么。公司业务主要是做一个数据中台,生成报表2.面试表现怎么样   还行3.公司主要技术栈是什么  主要和你项目技术栈差不多,就是springboot,redis,kafka这些更新一下,上午面完下午就通过了,约hr面,这家公司面试体验很好,hr和面试官都很友善二、部门主管+hr面部门主管先面试说一下你觉得满意的项目,我说了第一个和第二个之前有实习吗?没有,课多,没办法实习,现在没课了oj项目:做项目使用到哪些协议? http、websocket、sse项目是一个人独立做的嘛? 是的,前后端都是自己一个人做的你的项目怎么跑的。工厂模式,设计了接口,有一个是在本地跑判题怎么实现的? 我说了模仿力扣,左边题目,右边代码编辑器怎么做代码编辑器的? 使用开源组件判题过程有什么要注意的嘛? 主要是安全问题,超时和超内存bookdone项目:团队怎么组成的。算法组、前端组、后端组、产品组、商业化组,我在后端组做后端开发接口怎么设计的,需求分析怎么做? 产品组做需求分析,后端同学设计接口,使用knife4j团队怎么协作的? 我们使用了apifox,git技术,做Pr和code review,用飞书来排期遇到开发延期怎么处理?怎么抵抗风险? 这个没怎么答好hr再来面试你们学校有哪些课?数据结构、操作系统、计网、数据库软件工程专业和计算机专业的主要区别是什么?偏重实践,重视项目项目,多了一些软件体系结构、设计模式等课程你觉得自己的优势和劣势是什么? 优势:1.项目写的比较多2.相比没有实习经历的同学有团队开发经验,有code review经验3.科班生,专业基础扎实一些 劣势:没有过真实的企业实习经历,代码规范性不够好,架构设计不够合理,需要在企业实习中不断学习实习的目的是什么? 1.期待转正balabala 2.在企业实习过程中加强自己的代码规范性以及架构设计来杭州考虑过租房吗? 听说公司在杭州的***,我看了租金,2000多都能租很好的了,应该问题不大,杭州租金那么低hr反问环节?你们公司的企业文化是什么? hr:脚踏实地回应了一下,非常认同企业文化,就像我之前说的代码规范问题,实习生在做一些简单的crud工作时,也要做好代码规范
查看36道真题和解析
点赞 评论 收藏
分享
2024-11-28 12:37
已编辑
浙江农林大学 软件测试
1.自我介绍2.学的数据结构、数据库、python各考了多少分3.数据库表的链接①左连接left join:左连接是保留左表所有记录、右表匹配左表记录(右表不匹配的以null显示)②右连接right join:右连接是保留右表所有记录、左表匹配右表的记录(左表不匹配的以null显示)③内连接inner join:两个表中关联字段匹配的行,排除掉不匹配的行④全连接full join:返回两个表的所有数据,不匹配的以null显示4.数据库表数据的两种删除方式①delete:删除行,删除满足条件的记录②truncate:清空表的所有数据(删除所有行),但会保留表的结构,不会删除表5.数据库常用的聚合函数count(计数)、sum(求和)、avg(求平均值)、max(求最大值)、min(求最小值)6.group by 和 order by 的区别①group by 是用来分组的,一般与聚合函数配合使用②order by 是用来排序的,默认为(asc)升序排序,desc为降序排序7.数据库的模糊查询用like与通配符(%或_)配合使用①%:表示零个、一个或多个数字或字符,如名字为王开头的:where name like ‘王%’②_(下划线):表示单个任意字符,如名字为王x的:where name like '王_'8.Linux查看进程ps -aux9.Linux查看IPipconfig10.Linux查看内存free -m 或top11.Linux查看日志在日志文件目录下,使用tail -f实时查看日志,还有(cat、more、less、head)这些查看文件的方式12.说出HTTP状态码包括是什么含义①200:OK表示请求成功;②301:请求的资源已被永久地移动到新URI③404:请求失败,服务器找不到请求的网页④505:服务器不支持请求中所用的 HTTP 协议版本⑤500:(服务器内部错误) 服务器遇到错误,无法完成请求。13.上家公司实习的内容,举例一个业务场景14.登录测试场景,说出从哪些方面进行测试
查看14道真题和解析
点赞 评论 收藏
分享
2024-11-07 09:55
南通大学 Java
点赞 评论 收藏
分享
公司做AI相关,实习工资开的很高。 看起来福利不错。想着试试投一投。   2天后HR打来电话约了笔试和面试。笔试:  LRU,典,没什么好说的。面试:1.    自我介绍,很久没做了。2.     项目和实习,项目是用的马哥的铁路。 面试官是比较了解这些东西的。直接“我记得这个项目是github上的一个开源项目吧。那你应该是做的二次开发吧。那我不问这个了。  实习问的大概是做了些什么,印象最深刻的是什么。3.   手撕:请设计一个列表缓存容器(key -> str, value.>List),支持根据id对缓存值进行增删改查,即支持以下方法:1. get(String id)-> List:根据给走的id获取对应的完整有序列表。如果id不存在,返回nul。2. slice(String id, int fromIndex, int toIndex)-> List:根据给定的id获取对应有序列表的子列表范围为[fromIndex, toIndex).如果id不存在或索引越界,返回null,3. replace(String id, List value)-> List:使用给定的value替换id对应的有序列表,并返回被替换的原列表。如果id不存在,则新增该键值对并返回null4. insertHead(String id, List value)-> null:将value插入到id对应有序列表的头部。如果id不存在,则新增该键值对。5.removeHead(String id, int count)-> null:移除id对应有序列表的前count个元素。如果当前列表中元素数量小于count,则移除所有元素。我很少做设计题。刚看见懵逼了。 废了15分钟左右写出来。 明显,面试官绷不住了。4. 讨论了synchronized ,hashtable,concurrenthashmap等,怎么给这个缓存容器做线程安全。5.反问,一些start-up公司的技术问题。 很有意思。面试官不喜欢八股和面试冲刺项目,要深厚的基础和虚心的态度。 这也是为什么我被挂的原因。
查看5道真题和解析
点赞 评论 收藏
分享
2024-10-28 16:43
已编辑
门头沟学院 Unity3D客户端
岗位:游戏客户端没录音,只记得那么多了,应该没少太多。问到后面我嘴都要干的说不出话了。C#:C#值类型和引用类型在一个struct里面有一个类对象,这个类对象是存在堆上还是存在栈上呢C#装箱和拆箱在栈的查找数据为什么比在堆查找要快呢C#中如果对两个引用类型进行比较,比较的是字段还是值C#中用什么方法可以获得对应引用类型的值然后进行比较呢C#泛型C++中的模板可以定义一个T类型的Ta + Tb函数,C#中可以这样做吗C#中常用容器(arrayList、List、dictionary)C#List是什么类型的容器数组和链表有什么区别List中如果中间删除了某些元素,List会做什么操作,原数组会有什么问题数组在不创建新数组的情况下,你怎么实现中间元素的删除C#Dictionary底层是什么哈希表和红黑树的区别以及复杂度哈希表为什么能保持O(1)的插入和删除呢哈希函数一般怎么设计哈希冲突怎么解决通过int值来映射哈希值需要的数组太大了,怎么解决这个问题C#中用static定义构造函数会怎么样C#协程C#yield的作用C#yield return和yield return null有什么区别C#中IEnumeratorC#GC怎么运作的C#怎么判断一个对象该不该回收C#反射是什么C#反射怎么获取一个类然后调用里面的方法呢C#中event和委托有什么区别C#添加事件和删除事件一般通过+=或-=,那如果添加两次+=同一个事件,那调用会执行一次还是两次呢算法A*算法如果一个角色用A*算法寻路,发现走不到终点会怎么样一般在算法中遇到墙了该怎么处理图形学渲染管线中顶点着色器和片元着色器是干什么的光栅化中是哪个着色器光栅化是干什么的双线性差值和三线性差值深度缓冲深度测试详细流程透明度测试欧拉角和四元数知道吗?说一下万向节死锁点乘和叉乘的结果分别表示什么一个数字叉乘它本身能得到什么一个独立点 和 两个点连成一条线,怎么计算这个独立点到线的距离Unity静态合批和动态合批Unity怎么判断一个物体能不能进行静态合批呢Unity混合动画怎么做有两个动画片段walk和run,怎么做才能让动画切换变得丝滑Animation中的关键帧作用是什么Unity中Avatar有什么用Unity中AnimationClip中有什么Root Motion动画是什么摄像机中正交镜头和透视镜头的区别摄像机中fov是什么无反问
陌猫:哥们记性真好
查看98道真题和解析
点赞 评论 收藏
分享
2024-09-11 23:18
已编辑
京东科技_后端开发(实习员工)
自我介绍 ————1. 短链接项目中创建接口为什么用布隆过滤器?不是有误判的可能性吗,如何保证数据的正确性?高并发场景怎么解决的?- 布隆过滤器判断不存在的时候是完全准确的,而判断存在的误判率通过对布隆过滤器参数的配置可以降到一个很小的可接受的范围内,在系统不受攻击的情况下使用MySQL数据库的唯一索引作为兜底,如果创建成功的短链接进入数据库持久化时报唯一索引错误,此时执行事务回滚即可。如果同一个链接被高并发地创建,则此时由预防缓存穿透的逻辑解决,首次查询之后Redis会存储空对象,这样之后的请求不会全部打到数据库。2. AQS是什么?【简历写的,其实没答太好】- 全称是AbstractQueuedSynchronizer,是在JUC包中定义的,内部属性包含有一个int变量一个同步队列,作用是作为一个接口提供锁的通用实现机制。(后面胡扯绕了半天也没说点啥3. 介绍一下HashMap;为什么HashMap不支持多线程并发?HashMap如何解决Hash冲突?ConcurrentHashMap如何实现的?- 经典八股,说的八九不离十,扩容和红黑树、node数组加锁都提了4. 事务的隔离级别?可重复读是如何实现的?- 说了读写锁和共享锁,一些当前读和快照读的理解,第一条select执行快照读创建Read View快照,此后的select都访问该快照,但如果执行update语句时,则会执行当前读,一定会去读最新的数据5. 算法:打家劫舍Ⅱ- 最开始用注释写了个状态转移方程,因为首尾相接不好统一处理,卡了半天- 面试官提示可以分两种情况,确定偷第一家或者确定不偷,这样不用做统一处理。然后我开了两个dp数组写了一坨答辩代码,- 面试官说勉强算解决了,提出状态转移方程其实只涉及到了dp[n-2] dp[n-1]和dp[n]三个变量,其实可以用滚动方法优化空间复杂度,我说这个我明白,然后写了个封装函数robRange(int[] nums,int l,int r)把之前的逻辑整合简洁了一些,用上了滚动数组,主函数直接return Math.max(robRange(nums,0,n-1),robRange(nums,1,n));这样又写了半天,算法全过程总共墨迹了十几二十分钟- 面试官又提示了各种代码细节问题,比如函数返回值没写,有些地方复制的时候没改完美,总算是兜兜转转弄了一份完整代码。- 后面反问环节:我问了一下“刚才算法那块我感觉我写的有点烂,不知道您怎么看”,面试官说,这个其实就是刷的多就会,刷的少就不熟,我看你刚才反应也还算快的,多练就好。6. 场景代码题:Ⅰ. 单例模式示例代码如下,有哪些问题?----------------------------------------------------public class Singleton {static Singleton instance;private Singleton() {}static Singleton getInstance() {if (instance == null) {synchronized (Singleton.class) {instance = new Singleton();}}return instance;}}------------------------------------------------------- 其实有一堆问题,但是我只说了最明显的:只用了一层检查锁,首次进入的时候可能多个线程进入if块内创建多个单例- 面试官:这个地方用volatile修饰会怎么样?引导之后我说了一些使用volatile的优点,然后继续问“这样就行了吗”,我说看不出来什么问题了,结果给我讲了1分钟使用new关键字和指令重排序方面的知识,我全程点头啊对对对,不知所措(-----------------------------------------------------------------------Ⅱ. MySQL事务场景题--------------------------------------------------CREATE TABLE t (id INT PRIMARY KEY,k INT);INSERT INTO t (id, k) VALUES (1, 1), (3, 3);T A;UPDATE t SET k = 3 WHERE id = 1;COMMIT;T B;SELECT * FROM t WHERE id = 1;UPDATE t SET k = k + 1 WHERE id = 1;COMMIT;--------------------------------------------------问:事务A在commit之前因故阻塞了,在事务B的update语句前提交了,问此时事务B提交后id=1的k是多少?答:B事务提交完成后,此时k=4,因为update语句是当前读,事务A的提交对于B的update是可见的,所以相当于id=1的k先被修改事务A为3,事务B执行自增后变为4------------------------------------------------反问:公司主营业务是什么?刚才代码感觉敲的不好,问题大吗?
双飞鼠鼠不会梦到大厂...:现在小厂都算法,场景了么
查看7道真题和解析
点赞 评论 收藏
分享
2024-09-11 08:00
1. 解释C++中的内存管理机制(如堆和栈)。2. 描述C++中的拷贝构造函数和赋值运算符的作用及其区别。3. 什么是RAII?如何在C++中实现?4. 解释虚函数和虚表的原理。5. 描述C++中的构造函数和析构函数的作用和特点。6. 说明C++中的多重继承及其可能带来的问题。7. 什么是模板?如何在C++中定义和使用模板?8. 解释C++11中的`auto`关键字的使用场景和优势。9. 描述C++11中的`nullptr`的作用以及它与`NULL`的区别。10. 解释C++11中的智能指针`unique_ptr`的使用方法及其优缺点。11. 解释C++11中的`shared_ptr`的工作原理及其常见用法。12. 如何在C++中实现自定义异常处理?13. 描述C++中的`std::move`和`std::forward`的用途及其区别。14. 解释C++中的`enum`类与传统`enum`的区别。15. 什么是C++中的“函数对象”?如何定义和使用它们?16. 描述C++中的`std::function`和`std::bind`的功能和应用。17. 解释C++中的类型推导(type deduction)机制及其使用方法。18. 解释`static`关键字在类中的作用。19. 什么是C++中的“完美转发”?如何实现?20. 解释C++中的`constexpr`关键字及其用法。21. 描述C++中的`inline`函数及其优化作用。22. 什么是C++中的“左值引用”和“右值引用”?如何使用?23. 解释C++中的“移动构造函数”和“移动赋值运算符”。24. 描述C++中的“异常安全性”及其分类。25. 什么是C++中的“类模板”与“函数模板”?有什么区别?26. 解释C++中的“非类型模板参数”及其应用。27. 如何在C++中实现和使用“虚继承”?28. 描述C++中的“动态多态”和“静态多态”的区别。29. 什么是“C++中的拷贝控制”?如何自定义拷贝控制?30. 解释C++中的“友元函数”及其用途。31. 描述C++中的“析构函数”以及如何避免“资源泄漏”。32. 如何使用C++中的“`std::thread`”类进行多线程编程?33. 解释C++中的“`std::mutex`”和“`std::lock_guard`”的作用及其用法。34. 什么是C++中的“C++17”新特性?举例说明。35. 解释C++中的“`decltype`”关键字及其用途。问题答案已经整理到专栏中了,关注我分享更多知识。  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看35道真题和解析
点赞 评论 收藏
分享
2024-09-04 11:35
门头沟学院 Java
一面技术面:1.自我介绍2.介绍实习的项目3.redis有用在哪些地方4.redis为什么性能好?5.mysql有了解吗?6.场景题,找出在表A但不在表B中的数据?left join + is null微服务项目的问题7.谈一谈对微服务的理解?8.openfeign底层原理(问好像不是这么问的,但我答了feign的底层)9.开放题:我们的主要业务主要是做大模型的相关产品,进来的话能为我们做什么?乱答---------------------------------------------------------------------------------------------第二天早上跟我说面试过了,等offer,下午又跟我说临时加一面。。。二面:1.自我介绍2.说一下你比较擅长的技术栈,或者你项目中碰到的难题,然后我们展开探讨一下?说了redis和mysql3.redis缓存击穿及解决方法?4.布隆过滤器为什么会有误判率?5.redis的哨兵模式?6.如何推选新的主节点?7.项目用了rabbitmq,有了解死信队列吗?举例了超时取消支付8.什么情况下会死信,应用场景?答了超时取消支付,还有消息堆积过多,面试官说还有一个也是最重要的,数据类型不一致9.说一下数据类型不一致为啥会死信?10.rabbitmq之外的其他消息队列,以及他们适合的场景?(答了rabbitmq, rocketmq,kafka及应用场景)11.举个自己的事例,能够体现自己的学习能力强?12.接触一门新的技术栈,如何快速上手?13.硕士人工智能,做什么方向?14.然后就顺着我说的方向,问了我好几个关于模型结构及作用的具体的问题,这块我其实比较水,答得很差反问阶段---------------------------------------------------------------------------------------------总结:一开始面试约周五,后来推迟到周一,面完第二天跟我说过了,下午又跟我说临时加一面,定在晚上,到时间后跟我说面试官没时间,说再重新确定时间,我跟hr说是不是耍我,然后hr道歉后说约到时间跟我说,然后15分钟后hr跟我说可以进会议了。二面的面试官感觉比一面的面试官专业很多,要求也高很多,所以 反问阶段我问他他是做什么方向的,他说大模型后端前端都会。。。挺迷幻的一次面试经历---------------------------------------------------------------------------------------------9.04 hr跟我说面试过了,口头offer
查看23道真题和解析
点赞 评论 收藏
分享
一面就是做题设计一个LRUCache•get (key):获取指定key 的value 值(如果存在),并将该key 移动到最近使用的位置。。•put (key, value):插入一个新的key-value 对,如果插入前缓存已经满了,那么将最久未使用的 key-value 对删除。•可输出缓存结构内所有key-value对。package thread;import java.util.HashMap;import java.util.LinkedList;import java.util.Map;public class LRUCache {public static void main(String[] args) {LRUCache cache = new LRUCache(5);cache.put(1,1);cache.put(2,2);cache.put(3,3);System.out.println(cache.get(0));cache.put(4,4);cache.put(5,5);cache.put(6,6);System.out.println(cache.get(3));cache.put(2,3);}private int capacity;private Map<Integer, Integer> cache;private LinkedList<Integer> keyOrder;public LRUCache(int capacity) {this.capacity = capacity;cache = new HashMap<>();keyOrder = new LinkedList<>();}public Integer get(int key) {if(!cache.containsKey(key)){return null;}// 移动最近使用的位置keyOrder.remove(key);keyOrder.addLast(key);return cache.get(key);}public void put(int key, int value) {if (cache.size() > 5) {return;}// 先判断key是否已存在if (cache.containsKey(key)){// 如果已经存在了,移动到最近的位置cache.put(key,value);keyOrder.remove(key);keyOrder.addLast(key);}else{if(cache.size() == capacity){// 满了就删除最久没使用过的int old = keyOrder.removeFirst();cache.remove(old);}cache.put(key,value);keyOrder.addLast(key);}}}
查看4道真题和解析
点赞 评论 收藏
分享
模拟面试
真实面试体验,快速补齐短板
应聘感受
暂无应聘感受
牛客网
牛客网在线编程
牛客网题解
牛客企业服务