金山软件java线上面试

  1. 你对Java游戏开发需要的技术有啥了解?
  2. 让你来实现一个类似于dubbo的RPC框架,说说你的思路?(懵了)
  3. 如何创建单例模式?说了双重检查,他说不是线程安全的。如何高效的创建一个线程安全的单例?
  4. 同步IO和异步IO的区别?
  5. 除了垃圾回收,还有那些工作会造成CPU负载过高
  6. java中多线程机制,实现多线程的两种方式(继承Thread类和实现Runnable接口)的区别和联系
  7. 没get到他想让我说啥
  8. 快速排序和归并排序时间复杂度都一样,为什么要用快速排序
  9. 简述zookeeper。
  10. 内存泄露原因,举例子,如何排查内存泄漏的原因
  11. Spring的Controller是单例的吗?多线程情况下Controller是线程安全吗?
  12. JVM的内存布局以及垃圾回收原理及过程讲一下,讲一下CMS垃圾收集器垃圾回收的流程,以及CMS的缺点
  13. 讲一下Hadoop和YARN中的任务调度算法和任务队列
  14. 线程池了解吗 线程池大于核心线程的线程怎么销毁的?(然后又扯了半天怎么设计 什么死信队列什么的 开始瞎扯....)
  15. MySQL数据主从同步是如何实现的?
  16. Redis 线程模型?持久化方案?
  17. 如何获取一个本地服务器上可用的端口
  18. 使用模糊查询对用户名进行查询时该如何建立索引(不懂啥意思)
  19. 请说一个你在Hadoop中理解最为深刻的点,比如hdfs等

编程题

在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。

当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。

正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。

给你一个 非递减 的整数数组 timeSeries ,其中 timeSeries[i] 表示提莫在 timeSeries[i] 秒时对艾希发起攻击,以及一个表示中毒持续时间的整数 duration 。

返回艾希处于中毒状态的 总 秒数。

  • 示例 1: ``` 输入:timeSeries = [1,4], duration = 2 输出:4 解释:提莫攻击对艾希的影响如下:

  • 第 1 秒,提莫攻击艾希并使其立即中毒。中毒状态会维持 2 秒,即第 1 秒和第 2 秒。

  • 第 4 秒,提莫再次攻击艾希,艾希中毒状态又持续 2 秒,即第 4 秒和第 5 秒。 艾希在第 1、2、4、5 秒处于中毒状态,所以总中毒秒数是 4 。

    
    
  • 示例 2: ``` 输入:timeSeries = [1,2], duration = 2 输出:3 解释:提莫攻击对艾希的影响如下:

  • 第 1 秒,提莫攻击艾希并使其立即中毒。中毒状态会维持 2 秒,即第 1 秒和第 2 秒。

  • 第 2 秒,提莫再次攻击艾希,并重置中毒计时器,艾希中毒状态需要持续 2 秒,即第 2 秒和第 3 秒。 艾希在第 1、2、3 秒处于中毒状态,所以总中毒秒数是 3 。 ```