京东商城java开发工程师二面面经

  1. 让你自己来实现一个带权重的轮询负载均衡,能说说你的思路或者写个伪代码也行。(放弃治疗了,我太菜了)
  2. nio的底层实现
  3. 流排序和计数排序
  4. socket网络编程,说一下TCP的三次握手和四次挥手
  5. Redis Cluster 是如何进行扩容的?
  6. 说一下Spring的IOC和AOP在项目里是怎么用的。
  7. ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用HashMap,什么情况用ConcurrentHashMap?
  8. JDK1.8有那些变化
  9. JVM如何调优、参数怎么调?
  10. mysql隔离级别?互相之间的区别?
  11. redis持久化的几种方式
  12. 如何实现线程调度算法
  13. 存储了0-100的数据,如何删除其中小于10的数字(其实问的是list中如何删除元素——迭代器)
  14. Zookeeper在yarn框架中如何实现避免脑裂的?
  15. 什么是nginx的平滑重启,请简述其工作原理。
  16. TreeMap有用过吗?
  17. 同步IO和异步IO的区别?
  18. synchronized和reentrantLock的区别,synchronized用在代码快、方法、静态方法时锁的都是什么?
  19. 项目用到的jvm是什么版本,java8的新特性比如Stream项目用到了吗?
  20. 场景,同时给10万个人发工资,怎么样设计并发方案,能确保在1分钟内全部发完 打个比方会提出类似的场景
  21. Cpu load的参数如果为4,描述一下现在系统处于什么情况

编程题

  • 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

  • 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

  • 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

示例 1:

输入:[7,1,5,3,6,4]
输出:5
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
     注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。

示例 2:

输入:prices = [7,6,4,3,1]
输出:0
解释:在这种情况下, 没有交易完成, 所以最大利润为 0。