人人都是面试

相关文章: p6,7

校招

2021-5-19 一些面试题

子文章 

业务: 支付业务和支付商业能力_个人渣记录仅为自己搜索用的博客-CSDN博客

如何成为一名架构师,架构师成长之路_个人渣记录仅为自己搜索用的博客-CSDN博客_架构师成长之路

智能会议室建设总结_个人渣记录仅为自己搜索用的博客-CSDN博客

支付系统总结(收单,收银,资产交互,账务)_个人渣记录仅为自己搜索用的博客-CSDN博客

面试

  幂等,并发竞争容易混淆

   锁只能解决并发竞争,
   幂等实现有两种 二判三更新 ( 仅二判三更新是不行的, 有个并发问题, 所以需要一锁, 等价 cas)  或者 insert幂等

  一锁二判三更新

        一锁二判三更新解决的是幂等问题, 同时一锁顺带解决了其他并发竞争的问题,  注意判和更必须是同一个字段, expect必须是静态代码配置的值,  也可以用乐观锁强制规范.

      乐观锁有的问题, 一锁二判三更新都有! 在幂等这个作用上, 乐观锁可以作为悲观锁的兜底, 场景: 当一锁的行(例如主单表的行) 和 三更新的行(例如附属操作表的行)不一致时, 二判什么就会让很多同学疑惑,可能会导致二判的东西出错.
而乐观锁可以强制在一个sql里面确保二判三更新同一个字段,update xx set status = targetStatus when status = expectStatus .

  当然 一锁是很重要的, 可以有效避免其他字段的读and写并发竞争问题 .

乐观锁和悲观锁都需要加锁,那他们的的区别是?

  两者本质上都需要加锁等待. 悲观锁是整片区域先加锁,对n个字段而言. 乐观锁是对一个字段而言.

结合数据库的悲观锁和乐观锁进一步谈谈?

   数据库的悲观锁更加, 有了网络效应,让数据库持续性持有事务资源.

算法

看阿里大佬们是如何刷《剑指 offer》的? - 知乎

「剑指 Offer」 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台

面试最常考的 100 道算法题分类整理! - 知乎

letcode 算法 编程 面试https://blog.csdn.net/fei33423/article/details/123196168算法leetcode力扣_个人渣记录仅为自己搜索用的博客-CSDN博客<算法>入门, <算法导论>进阶 (动态规划,贪心算法结合下面的地址一起理解), 数据结构与算法分析(java语言描述)进阶1.[精华]二叉树遍历的非递归实现- 尾递归 栈实现_fei33423的专栏-CSDN博客2. 贪心算法详解_K神丶的专栏-CSDN博客_贪心算法3.从零开始学动态规划_houjingyi的博客-CSDN博客_动态规划怎么学...https://blog.csdn.net/fei33423/article/details/123320605?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22123320605%22%2C%22source%22%3A%22fei33423%22%7D&ctrtid=CBfY1

垃圾回收总结和面试和应用_fei33423的专栏-CSDN博客1. 原理概念理解. 并发,并行. 浮动垃圾.cms二次回收.2. 组合关系,为啥不能组合. 对应的jvm配置3. 细节调优, cms 的几种fail .内存大小收集器参数来自官网串行、并行or并发新生代/老年代算法目标适用场景Serial-XX:+UseSerialGC串行新生代...https://blog.csdn.net/fei33423/article/details/105076205?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164606627716780274141581%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=164606627716780274141581&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-105076205.nonecase&utm_term=%E9%9D%A2%E8%AF%95&spm=1018.2226.3001.4450

我的面试题. 业务抽象能力测试._fei33423的专栏-CSDN博客_业务抽象能力1. public enum Status { TRADE(3, "交易中"), PAY(4, "支付中"), CANCEL(5, "取消"), ONLINE_PAYED(6, "线上支付成功"), CASH_PAYED(7, "现金支付成功"), CASH_FINISH(8, "现金完成"), ONLINE_FINISH(9, "在线完成"https://blog.csdn.net/fei33423/article/details/53393413?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164606627716780274141581%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=164606627716780274141581&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-53393413.nonecase&utm_term=%E9%9D%A2%E8%AF%95&spm=1018.2226.3001.4450

人人都是java并发专家_个人渣记录仅为自己搜索用的博客-CSDN博客

人人都是分布式专家 paxos raft_个人渣记录仅为自己搜索用的博客-CSDN博客

java 定位实战_个人渣记录仅为自己搜索用的博客-CSDN博客

带着问题看jdk的并发AQS_个人渣记录仅为自己搜索用的博客-CSDN博客

redis相关

分布式事务 同库模式 remote模式_个人渣记录仅为自己搜索用的博客-CSDN博客

协程 java quasar 原理_个人渣记录仅为自己搜索用的博客-CSDN博客

内存屏障指令重排序

总结
(1)CPU具有多级缓存,越接近CPU的缓存越小也越快

(2)CPU缓存中的数据是以缓存行为单位处理的;

(3)CPU缓存行能带来免费加载数据的好处,所以处理数据性能非常高

(4)CPU缓存行也带来了弊端,多线程处理不相干的变量时会相互影响,也就是伪共享

(5)避免伪共享的主要思路就是让不相干的变量不要出现在同一个缓存行中;

1是每两个变量之间加上7个long类型;2是创建自己的long类型,而不是用原生的;3是使用java8的注解


————————————————
版权声明:本文为CSDN博主「小卒曹阿瞒」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_28119741/article/details/102815659

什么是伪共享(false sharing)_小卒曹阿瞒的博客-CSDN博客_false sharing

 dd210道面试题 · 语雀

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值