旷视科技java工程师一面面经

  1. MySQL索引的实现,innodb的索引,b+树索引是怎么实现的,为什么用b+树做索引节点,一个节点存了多少数据,怎么规定大小,与磁盘页对应。
  2. Hashmap的扩容机制原理
  3. 简述zookeeper。
  4. java线程阻塞调用wait函数和sleep区别和联系,还有函数yield,notify等的作用。
  5. 反爬虫的机制,有哪些方式
  6. POST和GET有什么区别?
  7. AtomicInteger怎么实现原子修改的?
  8. Linux,如何查看系统日志文件
  9. 讲一下Hadoop和YARN中的任务调度算法和任务队列
  10. 如何同步远程服务器上的指定目录到本地服务器?
  11. 你对Java游戏开发需要的技术有啥了解?(瞎扯了一堆,嘴笨还提了Unity3d,面试官说这是游戏前端的,咱们面的是后端...没有奇迹了?..)
  12. 1000个线程同时运行,怎么防止不卡
  13. 数据库底层有哪些数据结构实现?B树和B+树的区别?你觉得B+树还能在哪些方面做优化?
  14. 假如你是技术组长? 如何提高团队效率?
  15. 新生代和老年代的回收算法(什么时候是标记清除,什么时候标记整理,什么是复制算法,各有什么优缺点)
  16. 看你项目用了springboot,源码有了解过吗?知道为什么springboot能实现快速开发么?
  17. CAS原理,ABA是什么,ABA如何解决(没答上来,应该是version)
  18. Linux环境下,如何查看一个文件的头10行和尾10行?
  19. 节点个数是多少的时候,红黑树会退回链表。

编程题

  • 给你一个整数数组 nums ,返回 nums[i] XOR nums[j] 的最大运算结果,其中 0 ≤ i ≤ j < n 。

示例 1:

输入:nums = [3,10,5,25,2,8]
输出:28
解释:最大运算结果是 5 XOR 25 = 28.

示例 2:

输入:nums = [0]
输出:0

示例 3:

输入:nums = [2,4]
输出:6

示例 4:

输入:nums = [8,10,2]
输出:10

示例 5:

输入:nums = [14,70,53,83,49,91,36,80,92,51,66,70]
输出:127