阿里社招笔试题目1个大题目,如何枷锁,大厂笔试题目

//评测题目: 无
实现转账系统,给外部系统提供账户开户,充值,转账rpc服务,要求如下,

- 账户类设计:类名:Account,包含属性账号,账户余额,持有人身份证账号
- 开户功能:
  - 入参:开户人身份证账号
  - 功能逻辑:创建对应的Account,并持久化
  - 返回值:账号
  - 要求:一个身份证只允许有一个Account,每个Account的账号唯一
- 充值功能:
  - 入参:账号,充值金额,请求号(请求号唯一)
  - 功能逻辑:将充值金额增加到对应账户的余额中去
  - 返回值:余额
- 转账功能:
  - 入参:转出账号,转入账号,转账金额,请求号(请求号唯一)
  - 功能逻辑:转出账号余额减少,转入账号余额增加
  - 返回值:转出账号余额

- 其他说明
  - 上游系统在调用相关服务超时的情况下,会使用原请求发起重试
  - 充值与充值,转账与转账,充值与转账之间存在并发情况
  - 考虑性能
  - 限定单机提供rpc服务(代码提供rpc接口和实现即可,不用考虑如何发布rpc),账户持久化上到jvm内存中,不需要使用DB
  - 直接基于jdk编写,不依赖其他框架
  
public class Account   implements Serializable {

    //包含属性账号
    public   String  account;
    //账户余额,
    public   Double  balance;
    //持有人身份证账号
    public   String  idCard;


    public Account(String account, Double balance, String idCard) {
        this.account = account;
        this.balance = balance;
        this.idCard = idCard;
    }

    public Account(String account) {
        this.account = account;
    }

    public String getAccount() {
        retur

你可能感兴趣的:(2020年工作,并发编程系列-高并发)