京东实习一面

1. 10w条数据读入内存,放入hashmap,不能重复
2. hashmap使用时要初始化容量的
3. 怎么判断10个线程处理完所有的数据
4. countdownlauch的原理
5. AQS的原理,还有什么实现的countdownlauch
6. 怎么断点续传
7. 订单系统内,怎么分库分表
8. 分库分表时,怎么查询用一个用户的订单
9. ES数据库
10. binlog日志,怎么同步跟新es
11. 怎么保证数据不丢失
12. 最左匹配原则
13. buff pool是什么
14. where条件什么时候会命中索引,什么时候会索引失效
15. Mysql的主从同步
16. redis哨兵机制
17. zset底层
18. redis 分布式锁,redis看门狗机制
19. redis热key问题
20. 哪些提供本地内存
21. 策略模式和模版方法模式
22. 线程池的线程数越多越好吗
23. RPC框架,分几部分
24. mybatis,分库分表时,一样的sql怎么查询具体的数据
25. 数据库连接池
全部评论
第一题:containsKey判断,无则放,有则不处理,还要考虑容器初始化:根据负载因子0.75得hashmap最少要(100000 / 0.75=133334)
1 回复 分享
发布于 12-09 16:18 广东
CountDownLatch,始化一个CountDownLatch对象,设置计数器为 10(对应 10 个线程),在每个线程执行完任务的最后调用countDown方法使计数器减 1,主线程通过调用await方法阻塞等待,直到计数器变为 0,表示 10 个线程都完成了任务
1 回复 分享
发布于 12-09 16:20 广东
第一个怎么回答
点赞 回复 分享
发布于 11-27 19:37 白俄罗斯
第二题:初始化因子公式:(int) Math.ceil(n / 0.75)
点赞 回复 分享
发布于 12-09 16:19 广东
第四题:CountDownLatch基于AQS(AbstractQueuedSynchronizer)实现。它内部有一个计数器,构造函数中传入初始计数值,当线程调用countDown方法时,会通过AQS的原子操作使计数器减 1。而调用await方法的线程会阻塞等待,直到计数器的值变为 0,这时AQS会释放阻塞的线程,让它们继续执行后续逻辑,主要用于协调多个线程之间的执行顺序,等待一组操作完成后再继续下一步操作。
点赞 回复 分享
发布于 12-09 16:21 广东
第五题:AQS是一个用于构建锁和同步器的基础框架,它维护了一个同步队列(基于双向链表实现),内部通过一个int类型的状态变量来表示同步状态,并提供了对状态进行原子操作(如获取、设置、CAS 操作等)的方法。通过继承AQS并重写其部分方法,可以实现不同的同步器。
点赞 回复 分享
发布于 12-09 16:21 广东
第六题:断点续传主要依赖于分片上传,将一个文件分成n份,进行上传,如果上传失败,查询后端接口判断还有那几个没有上传,然后再将没有上传的文件重新上传,上传完合按顺序合并就可以了
点赞 回复 分享
发布于 12-16 16:27 四川

相关推荐

评论
8
76
分享
牛客网
牛客企业服务