涂鸦智能一二面面经

涂鸦一面 10.14 45min

  1. 自我介绍
  2. 讲一讲实习的项目或者你自己写的项目吧
  3. 扯项目,问 RBAC , 以及 在业务上是怎么实现的(一直没理清,最后才明白面试官要我说的是我这个权限实现了什么,我这里实现的是不同权限的人展示的页面/按钮不同)
  4. 扯项目,讲了一下如何去实现消息的可靠投递,期间面试官对为什么消息要进行持久化、为什么要消费的时候发 ack,以及延伸出去,问了什么是幂等,如何去实现幂等
  5. 扯项目,jwt的结构,以及其他解决分布式session的方案
  6. 扯项目,什么是跨域(扯浏览器的同源策略、以及通过设置请求头去解决以及原理)、
  7. 扯项目,讲讲你实现视频解码的时候设置的分辨率多少,前端用什么播放(videojs)
  8. 你项目中 redis 是如何使用的,存储了什么信息
  9. redis有哪些数据结构
  10. 缓存穿透如何解决
  11. 项目中用到了 AOP,来讲讲 SpringBoot 中如何去写 AOP 吧,有哪些注解,有什么作用(@AspectJ、@Pointcut、@Before、@After、@AfterReturning、@AfterThrowing......)
  12. 来讲讲线程池的七大参数, 拒绝策略JDK提供的有哪些
  13. 系统频繁的gc会发生什么
  14. MySQL 可重复读是如何去实现的
  15. 面向对象和面向过程有什么区别
  16. MySQL书写语句具体有哪些可以优化(模糊查询的使用'xxx%'、不使用 NOT IN、or、索引覆盖......)
  17. 项目中遇到的困难,如何解决

涂鸦二面 10.20 1h

面试官:我看一面问的项目比较多,这一面就问问基础知识吧

  1. 如何去判断一个链表中有环,如何确定环的入口点,如何计算环的长度
  2. 讲一讲快速排序的思路,快速排序的时间复杂度、空间复杂度,是否稳定
  3. 如何解决哈希冲突
  4. JDK8 HashMap对于哈希定位做了哪些优化(本来说完了,想扯那个扩容的时候有个优化,结果扯着扯着自己忘了...给自己挖坑)
  5. 三次握手为什么要三次,两次会出现什么后果
  6. 四次挥手,主动释放连接的一方需要 TIME_WAIT,为什么需要等待一段时间,不等待会怎样
  7. 讲一讲 http 与 https
  8. 讲一讲 MySQL Innodb引擎中的 B+ 树
  9. 如果我线上有 sql 查询的慢,如何去排查
  10. 联合索引里面存的是什么,为什么会有最左匹配的原则
  11. TCP拥塞控制算法中的快恢复和有什么区别
  12. 说一下 JVM 的内存结构
  13. 什么是尾递归(没想出来,给自己挖坑)
  14. 递归和循环那个性能好(不知道,我说他们都得设置终止条件,像递归可能就会 Stack OverflowError)
  15. 为什么会 Stack OverflowError,栈帧是什么,栈帧是线程私有的吗
  16. 如何设置虚拟机栈的大小(忘了,只知道具体有参数设置),虚拟机栈存在哪里(不知道...)
  17. redis的数据结构,使用场景
  18. 布隆过滤器
  19. 如何保证 redis 和 mysql 的数据一致性
  20. 你项目中用到了 Nacos 是吧,那你了解dubbo吗(不了解),那你讲讲你对微服务的理解吧
  21. 场景题:统计有多少人进入过直播间(简单理解为用户点击按钮,计数就加1),如何去设计这个场景、
  22. 逻辑题 5L和6L的瓶,如何装出3L的水

只记得这么多了,感觉面试的时候有点模糊的东西,最好想清楚再说或者干脆说不懂,别给自己挖坑。

#java求职##涂鸦智能##面试题目#
全部评论
很赞
点赞 回复 分享
发布于 2021-10-21 11:10
涂鸦咋样呀 值得去吗
点赞 回复 分享
发布于 2021-10-25 08:30
判断环入口可以用map保存节点访问次数,一旦出现第二次访问的时候就是入口;环长度可以通过遍历链表两次访问入口节点的步数得到
点赞 回复 分享
发布于 2021-10-27 19:03
楼主收到offer了吗
点赞 回复 分享
发布于 2021-10-31 08:39

相关推荐

事件循环(Event Loop)是 JavaScript 中用于协调和处理异步操作的机制。它的作用是监听事件队列,将其中的事件按照顺序执行,并将结果返回给相应的回调函数或者更新UI界面。在 JavaScript 中,单线程的特性意味着只有一个执行线程来处理代码。然而,JavaScript 中的许多操作都是异步执行的,比如网络请求、文件读写、定时器等。为了处理这些异步操作,JavaScript 引擎使用了事件循环来管理和调度任务的执行。事件循环的基本流程如下:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=5bbc1ec127b94659b8688475db533ecb执行同步代码,将任务添加到调用栈中。当遇到异步操作时,将其推入任务队列(回调队列)中,继续执行后续的同步代码。当调用栈为空时,事件循环开始执行。它会从任务队列中获取一个任务,将其放入调用栈中执行。执行任务的同时,可能会产生新的异步操作,将其推入任务队列中等待执行。循环上述过程,直到任务队列中没有任务需要执行。与线程之间的关系是,JavaScript 运行在单个主线程中,即 JavaScript 引擎(如浏览器的 V8 引擎)是单线程执行的。事件循环使得 JavaScript 引擎能够处理异步操作,而不会阻塞主线程,从而保持了用户界面的响应性能。虽然 JavaScript 引擎是单线程的,但是 JavaScript 还有其他的线程,比如网络请求、定时器等底层操作会在其他线程中执行。当这些操作完成后,会将相应的回调函数推入任务队列中,等待事件循环将其执行。这样,通过事件循环机制,JavaScript 实现了异步编程,提高了程序的效率和性能。#ai智能作图#
点赞 评论 收藏
分享
评论
10
23
分享
牛客网
牛客企业服务