京东科技一二面凉经

一面0831

  1. 自我介绍
  2. 项目中遇到的棘手的问题,如何解决的
  3. 说说MySQL中的事务,如何减少死锁的情况
  4. 项目中的数据库引擎使用的哪个
  5. 项目中使用的字符编码
  6. utf8、utf8mb4、utf8_bin区别
  7. Hash索引和B+树索引的区别
  8. B+树和B树的区别
  9. MySQL的B+树叶子结点页面多大
  10. limit的缺点,如何优化
  11. Redis的事务
  12. 老版本的Redis没有事务机制,如何实现:Lua脚本、Redis管道机制
  13. Redis的持久化机制
  14. Redis的过期删除策略
  15. SpringBoot读取配置的方式
  16. properties文件和yaml配置文件的区别
  17. 如何读取properties文件,如何读指定路径的properties文件
  18. Spring常见的注入方式
  19. Resource和Autowired的区别
  20. Spring如何解决循环依赖问题
  21. Java常见的序列化方法
  22. Json和Serializable的优缺点
  23. 单例模式保证单例的线程安全
  24. 什么时候会打破单例模式
  25. Runnable和Callable的区别
  26. 线程之间的通信
  27. ArrayList如何保证线程安全
  28. Java中的阻塞队列、非阻塞队列
  29. 为什么HashMap推荐使用String作为key
  30. HashMap的扩容机制、为什么容量是2的幂次
  31. ConcurrentHashMap与HashTable的区别
  32. synchronized的优化
  33. Kafka、RocketMQ、RabbitMQ的区别
  34. Kafka、RocketMQ如何保证顺序消费
  35. JDK7和JDK8的内存变化
  36. JVM的常见参数
  37. 方法区域OOM抛出异常JDK7和8的区别

二面0901

聊了项目,技术部分比较少

#2023秋招##23届秋招笔面经##京东##京东招聘#
全部评论
请问楼主挂了官网的状态是什么啊?我一面结束转推荐了...算是挂了吗
点赞 回复 分享
发布于 2022-09-05 20:51 北京
楼主您好 你投京东,选部门的时候选的是不限还是具体的部门呢
点赞 回复 分享
发布于 2022-09-03 22:49 四川
一面问这么多问题嘛
点赞 回复 分享
发布于 2022-09-03 12:42 陕西
兄弟一面多久后二面
点赞 回复 分享
发布于 2022-09-02 19:22 上海

相关推荐

05-23 15:16
已编辑
门头沟学院 Java
1,缓存架构?答:讲了一下redis在项目中的具体实现注:其实面试官想问的是多层架构2,redsi缓存击穿,穿透,雪崩怎么解决?答:击穿可以通过设置热key永不过期穿透可以使用缓存空值和布隆过滤器来解决雪崩可以通过给键设置基础时间值+随机时间值来解决注:缓存击穿还可以还通过互斥锁进行解决(性能较低)关于雪崩上面只说了大量key过期的问题 没有提到redis宕机解决方法:(1)设置多层架构(2)建立redis主从或集群(3)提前演练redis宕机 从而设计解决方法3,大量不存在的用户同时登录时会给数据库造成压力,怎么解决?答:使用redis缓存空值注:缓存空值不能有效解决这类缓存穿透问题这里要使用布隆过滤器进行拦截 更加有效在实际业务开发中最好俩者结合使用4,jwt?答:说了一下jwt的生成和解析以及结构5,讲讲乐观锁和悲观锁答:讲了一遍sychronized的底层实现从无锁->偏向锁->轻量级锁->重量级锁这里轻量级锁就是乐观锁 重量级锁就是悲观锁6,乐观锁和悲观锁最主要的区别?答:在低并发场景下乐观锁性能好在高并发场景下悲观锁性能好注:乐观锁是认为操作的时候没有线程和我并发操作通过cas判断 不会让你的线程挂起 可能会不断自旋去尝试获取锁悲观锁是认为有线程和我并发操作 拿不到锁线程就会进入阻塞状态直到拿到锁的线程释放锁后唤醒该线程7,sychronized和reentrantlock有什么区别?答:sychronized由jvm释放锁 reentrantlock手动释放sychronized不可重入 reentrantlock可重入(避免死锁)注:这里答错了sychronized可重入他们的主要区别在于sychronized不支持公平锁,不支持超时不可中断,不支持多条件sychronized是java内置的关键字 reentrantlock是由juc类库所提供的8,aop怎么理解?这里答的太乱了不清楚注:把那些非核心功能抽取出来封装成一个切面去掉冗余代码通过动态代理的方式 将需要注入切面的对象进行代理在进行调用的时候直接将公共逻辑注入侵入性较低1,缓存架构?答:讲了一下redis在项目中的具体实现注:其实面试官想问的是多层架构2,redsi缓存击穿,穿透,雪崩怎么解决?答:击穿可以通过设置热key永不过期穿透可以使用缓存空值和布隆过滤器来解决雪崩可以通过给键设置基础时间值+随机时间值来解决注:缓存击穿还可以还通过互斥锁进行解决(性能较低)关于雪崩上面只说了大量key过期的问题 没有提到redis宕机解决方法:(1)设置多层架构(2)建立redis主从或集群(3)提前演练redis宕机 从而设计解决方法3,大量不存在的用户同时登录时会给数据库造成压力,怎么解决?答:使用redis缓存空值注:缓存空值不能有效解决这类缓存穿透问题这里要使用布隆过滤器进行拦截 更加有效在实际业务开发中最好俩者结合使用4,jwt?答:说了一下jwt的生成和解析以及结构5,讲讲乐观锁和悲观锁答:讲了一遍sychronized的底层实现从无锁->偏向锁->轻量级锁->重量级锁这里轻量级锁就是乐观锁 重量级锁就是悲观锁6,乐观锁和悲观锁最主要的区别?答:在低并发场景下乐观锁性能好在高并发场景下悲观锁性能好注:乐观锁是认为操作的时候没有线程和我并发操作通过cas判断 不会让你的线程挂起 可能会不断自旋去尝试获取锁悲观锁是认为有线程和我并发操作 拿不到锁线程就会进入阻塞状态直到拿到锁的线程释放锁后唤醒该线程7,sychronized和reentrantlock有什么区别?答:sychronized由jvm释放锁 reentrantlock手动释放sychronized不可重入 reentrantlock可重入(避免死锁)注:这里答错了sychronized可重入他们的主要区别在于sychronized不支持公平锁,不支持超时不可中断,不支持多条件sychronized是java内置的关键字 reentrantlock是由juc类库所提供的8,aop怎么理解?这里答的太乱了不清楚注:把那些非核心功能抽取出来封装成一个切面去掉冗余代码通过动态代理的方式 将需要注入切面的对象进行代理在进行调用的时候直接将公共逻辑注入 侵入性较低不想写了 直接把问题都扔出来吧java线程池的七个参数?1. Java线程池,5核⼼、10最⼤、10队列,第6个任务来了是什么状态?任务扔到⼯作队列中2. 如果在第6个任务过来的时候,5个核⼼线程都已经空闲了呢?⼀样扔到队列(线程池只关注数量)3. 第16个任务来了怎么处理?创建⾮核⼼线程去处理第16个任务4. 第16个任务来了的时候,要是有核⼼线程空闲了呢?如果这个空闲的线程,将⼯作队列中的10个任务,取⾛了⼀个,变为了9个,那任务扔队列。如果空闲的线程还没来得及取⾛任务,投递时,队列⻓度依然为10,那还是创建⾮核⼼。5. 队列满了以后执⾏队列的任务是从队列头 or 队尾取?⼀般咱们的阻塞队列都是FIFO的,所以先进先出,从头取。6. 核⼼线程和⾮核⼼线程执⾏结束后,谁先执⾏队列⾥的任务?谁空闲了,并且去等待任务,谁先去执⾏队列⾥的任务。7.为什么⾮核⼼优先执⾏投递的任务?8.核⼼线程与⾮核⼼线程有什么区别?9.MySQL中如何实现数据的读⼀致性?10. MySQL的InnoDB引擎是如何通过⽇志实现事务的?11. MySQL崩溃恢复为什么不⽤binLog?12.Redis的事务了解吗?13.Redis 的持久化机制?总结:对底层的理解还是不够深入 之前没有了解过redis事务 有的时候答非所问容易跑题
点赞 评论 收藏
分享
评论
1
37
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务