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