HelloCoder HelloCoder
首页
《Java小白求职之路》
《小白学Java》
计算机毕设
  • 一些免费计算机资源
  • 脚手架工具
  • 《从0到1学习Java多线程》
  • 《从0到1搭建服务器》
随笔
关于作者
首页
《Java小白求职之路》
《小白学Java》
计算机毕设
  • 一些免费计算机资源
  • 脚手架工具
  • 《从0到1学习Java多线程》
  • 《从0到1搭建服务器》
随笔
关于作者
  • 《LearnJavaToFindAJob》

    • 导读

    • 【初级】6~12k档

    • 【中级】12k-26k档

    • 【高级】26k+档

    • 大厂面试题

      • IBM面试题-不借助变量交换两个数
      • 奇怪的面试题
      • 快手

      • 美团

      • 腾讯

      • 阿里

    • 求职建议

    • 面经

  • LearnJavaToFindAJob
  • 大厂面试题
#奇怪 #面试题
码农阿雨
2022-06-02
目录

奇怪的面试题

# 1、一个while循环,里面只要一个 i++,估算一下一秒钟最大能加到多少?

while true的话会被编译器优化掉,估计可以不用cmp直接jump。无论是i++还是++i都可以被优化成i = i + 1。

所以加起来就两条指令,一直在局部循环假设取指都命中缓存,i存在寄存器或缓存中。所以一次循环共耗费2个指令周期。(不考虑进程调度和中断)

所以i可以加到cpu时钟频率/(2*ipc),即 CPU频率 / 2 。

# 2、MySQL、Redis、es 三个如何保持数据一致性,失败了如何回滚?

假如MySQL修改了数据,Redis、es 如何保持一致性呢?

首先这种多系统的业务,没有绝对的强一致性。

所以能保证的是最终一致性。

方法可以是:db提交用 canal 这种组件,把binlog 发送到mq,拿异构数据同步工具搭建两条同步链路,从 mq 取数据,分别写进 redis、es

再者,可以使用补偿,涉及到写操作,一律以MySQL数据为准。

阅读全文
×

(为防止恶意爬虫)
扫码或搜索:HelloCoder
发送:290992
即可永久解锁本站全部文章

解锁
#奇怪#面试题
上次更新: 2025-02-21 06:04:57
最近更新
01
《LeetCode 101》
02-21
02
IDEA、Golang、Pycharm破解安装
02-21
03
《LeetCode CookBook》
02-21
更多文章>
Theme by Vdoing | Copyright © 2020-2025 码农阿雨
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式