初面蚂蚁金服,java商城项目经验简历
线程是否要锁住同步资源
- 锁住 悲观锁
- 不锁住 乐观锁
锁住同步资源失败 线程是否要阻塞
- 阻塞
- 不阻塞自旋锁,适应性自旋锁
多个线程竞争同步资源的流程细节有没有区别
- 不锁住资源,多个线程只有一个能修改资源成功,其它线程会重试无锁
- 同一个线程执行同步资源时自动获取资源偏向锁
- 多个线程竞争同步资源时,没有获取资源的线程自旋等待锁释放 轻量级锁
- 多个线程竞争同步资源时,没有获取资源的线程阻塞等待唤醒 重量级锁
4.多个线程竞争锁时是否要排队
- 排队公平锁
- 先尝试插队,插队失败在排队非公平锁
一个线程的多个流程能不能获取同一把锁
- 能 可重入锁
- 不能非可重入锁
多个线程能不能共享一把锁
- 能 共享
- 不能排他锁
悲观锁与乐观锁
悲观锁与乐观锁时一种广义的概念,体现的是看待线程同步的不同角度。
悲观锁
悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,在获取数据的时候会先加锁,确保数据不会被别的线程修改。 锁实现:synchronized
接口Lock
的实现类 适用场景:写操作多,先加锁可以保证写操作时数据正确。
乐观锁
乐观锁认为自己在使用数据时不会有别的线程修改数据,所以不会添加锁,只是在更新数据的时候去判断之前有没有别的线程更新了这个数据。 锁实现:CAS
算法,例如AtomicInteger
类的原子自增时通过CAS
自旋实现。 适用场景:读操作较多,不加锁的特点能够使其读操作的性能大幅度提升。 乐观锁的执行流程: 线程A获取到数据以后直接操作,操作完数据以后准备更新同步资源,更新之前会先判断内存中同步资源是否被更新: 1.如果没有被更新,更新内存中同步资源的值。 2.如果同步资源被其他线程更新,根据实现方法执行不同的操做(报错or重试)。
CAS算法
全名:Compare And Swap(比较并交换) 无锁算法:基于硬件原语实现,在不使用锁(没有线程被阻塞)的情况下实现多线程之间的变量同步。 jdk中的实现:java.util.concurrent包中的原子类就是通过CAS来实现了乐观锁。 算法涉及到的三个操作数:
需要读写的内存值V
进行比较的值A
要写入的新值的B
CAS存在的问题
1.ABA问题 线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题。 举例:一个小偷,把别人家的钱偷了之后又还了回来,还是原来的钱吗,你老婆出轨之后又回来,还是原来的老婆吗?ABA问题也一样,如果不好好解决就会带来大量的问题。最常见的就是资金问题,也就是别人如果挪用了你的钱,在你发现之前又还了回来。但是别人却已经触犯了法律。 但是jdk已经解决了这个问题。 想追下源码来着,但是一追发现直接到c了。
2.循环时间长开销大 3.只能保证一个共享变量的原子操作
最后总结
ActiveMQ+Kafka+RabbitMQ学习笔记PDF
RabbitMQ实战指南
手写RocketMQ笔记
手写“Kafka笔记”
关于分布式,限流+缓存+缓存,这三大技术(包含:ZooKeeper+Nginx+MongoDB+memcached+Redis+ActiveMQ+Kafka+RabbitMQ)等等。这些相关的面试也好,还有手写以及学习的笔记PDF,都是啃透分布式技术必不可少的宝藏。以上的每一个专题每一个小分类都有相关的介绍,并且小编也已经将其整理成PDF啦
tMQ)等等。这些相关的面试也好,还有手写以及学习的笔记PDF,都是啃透分布式技术必不可少的宝藏。以上的每一个专题每一个小分类都有相关的介绍,并且小编也已经将其整理成PDF啦
资料领取方式:戳这里免费领取
初面蚂蚁金服,java商城项目经验简历相关推荐
- 2021 阿里巴巴和蚂蚁金服 Java实习生 面试经验贴(重要!!!)
最近面了蚂蚁金服集团的Java实习生,遗憾的是在第三面的时候挂了,不过还是希望能在此博客跟更多人分享我的经验,跟大家一起成长! 由于论文未按照我原本的计划投出去,备战实习的时间被耽搁了,于是乎,从今年 ...
- java内存shell_2019蚂蚁金服Java后端三面,详述程序员必须掌握的架构底层原理
前面的话 告别了2018 ,也早已正式进入2019 面试一直都是大家关注的热门话题,俗话说"金三银四",如今已经是三月份了,如果你打算在年后跳槽,那么是时候该着手准备了 很多Jav ...
- 拼多多、饿了么、蚂蚁金服Java面试题大集
自己当初找工作时参加过众多一线互联网公司的Java研发面试,这段时间处于寒冬,然而前几天跳槽找工作,两天面了3家,已经拿了两个offer,觉得可以和大家分享下: 下面为拼多多.饿了么.蚂蚁金服.哈啰出 ...
- 阿里、腾讯、蚂蚁金服Java技术面试及经验总结(文末分享答案)
在过去很长一段时间内,国内互联网一直处于三足鼎立状态,BAT即百度.阿里巴巴.腾讯.而在最新的互联网企业价值榜上,百度却被蚂蚁金服挤出前三的位置. 能够进一线互联网公司,是大部分程序员奋斗的目标,有很 ...
- 2019社招阿里、腾讯、蚂蚁金服Java面试真题
在过去很长一段时间内,国内互联网一直处于三足鼎立状态,BAT即百度.阿里巴巴.腾讯.而在最新的互联网企业价值榜上,百度却被蚂蚁金服挤出前三的位置. 能够进一线互联网公司,是大部分程序员奋斗的目标,有很 ...
- 阿里、腾讯、蚂蚁金服Java技术面试及经验总结
在过去很长一段时间内,国内互联网一直处于三足鼎立状态,BAT即百度.阿里巴巴.腾讯.而在最新的互联网企业价值榜上,百度却被蚂蚁金服挤出前三的位置. 能够进一线互联网公司,是大部分程序员奋斗的目标,有很 ...
- 蚂蚁金服—JAVA实现全排列
分享一道蚂蚁金服JAVA实现全排列的代码 在这里插入代码片 package com.lyz.dataStructure.LeetCode;import java.util.List; import j ...
- 大牛分享,献出这份年薪68W的蚂蚁金服Java高级开发封神宝典!
超级大牛经验分享,献出这份年薪68W的蚂蚁金服Java高级开发封神宝典! 干货奉上,不喜勿喷: 一.源码阅读 1.常用设计模式 2.Spring 5 源码 3.MyBatis源码 二.分布式架构总纲 ...
- 蚂蚁金服Java岗三面(电面.现场面.HR面)经验总结和分享
面试内容如下: 一. 电面: 1.自我介绍 2.项目情况: (1.)对你来说影响最大的一个项目(该面试中有关项目问题都针对该项目展开)? (2.)为什么会想做这个项目?这个项目的ideal是谁提出来的 ...
- 最新蚂蚁金服Java面试题:Docker+秒杀设计+RocketMQ+亿级数据设计
蚂蚁金服一面: 1 自我介绍 2 讲一下ArrayList和linkedlist的区别,ArrayList的扩容方式,扩容时机. 3 hashmap的实现,以及hashmap扩容底层实现. 4 NIO ...
最新文章
- java字节对齐 32 64_【C语言】字节对齐问题(以32位系统为例)
- C++中关于流的概念
- fedora17 的 rc.local
- Springboot 日志、配置文件、接口数据如何脱敏?老鸟们都是这样玩的!
- python两列相乘_如何将pandas中具有不同索引的两列相乘?
- 诗与远方:无题(十六)
- Python 资源库大全
- 头条搜索已经全面上线,会不会成为下一个流量风口
- F1060 IPV6 BGP4+与静态路由重分布典型组网配置案例
- 【ROS学习笔记】(八)服务数据的定义与使用
- 在layui layer 弹出层中加载 layui table
- 民间借贷红线大幅下调,二手车平台去金融化将成趋势?
- 鸿蒙媒体子系统解读-编码录像流程解读
- 教你添加百度分享按钮
- vba 冻结窗格_在VBA中进行调试-2A)代码窗格(F7)
- 微信开发之——接口调用频率xianzh
- WPF基础系列二:控件简介
- WebSpider蓝蜘蛛网页抓取工具5.1用户手册
- xp无法访问win7计算机,解决XP不能访问win7共享文件的方法
- C++字符输入方式详解
热门文章
- html 倒计时弹出框,alert警告框倒计时
- 【前端】弹出框提交表单
- M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid
- cleverhans库——FGSM代码实战
- PHP:错误控制运算符
- 计算机领域车牌识别,城市智慧停车的智能眼睛——车牌识别系统
- 基于EEG的睡眠分期算法记录3-使用决策树多类支持向量机的自动睡眠阶段分类
- InfoPath2003 教程
- 人肉搜索将被禁止,大家要保护好自己的个人信息!
- 基于javaweb+jsp的员工绩效考核管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax)