摘要:
首先先确认方案 方案1:下单后减库存;用户下单,然后库存加锁,判断库存是否充足,用户下单完成,减库存,最后释放库存锁。 方案2:支付才减库存;用户支付,然后库存加锁,判断库存是否充足,用户支付完成,减库存,最后释放库存锁。 当然还有其他方案,这里只阐述我的思考。 (库存加锁的过程有个小细节请看附1) 阅读全文
摘要:
场景描述: 一个controller中,部门领导有布置任务,查看任务整体情况,查看部门成员,查看部门成员完成情况,导出任务详情,如下: @RestController @RequestMapping(value = "/task") public class TaskController{ @Pos 阅读全文
摘要:
一年又过去了,这是我的第二年的JAVA开发,总感觉有很多想说的,可惜语言组织能力着实一般,以下列举一些今年的总结。 1、首先告诫一下新入行或者新入职经验不多的小伙伴,写sql的时候根据业务能单表就单表查询(最好命中索引 ),涉及到多表查询,也尽量先单表查出再查另外一张表。在测试环境你可能执行sql没 阅读全文
摘要:
JVM怎么执行java代码 首先把java文件编译成class文件(比如从jar包加载),然后通过类加载器加载到jvm,然后jvm去执行。下图是一个大概的流程: 1. 类加载器: 1)根类加载器(Bootstrap ClassLoader):加载java的核心类,也就是加载java安装目录下,"li 阅读全文
摘要:
描述: 有一个业务是需要后台生成图片,后台使用了Graphics2D类。在docker部署时,图片上的中文变成方块。 解决方案: 百度了一下,发现是生产上的docker容器下没有中文字体,需要在容器里面添加中文字体,但是这样的话要单独维护一个中文字体的镜像。后来直接在代码里面处理,字体文件放在res 阅读全文
摘要:
装饰器模式:动态地将责任附加到对象上,允许用户向现有对象添加新功能而不改变其结构。若要扩展功能,装饰器提供了比继承更有弹性的替代方案。 场景:假如有这样一个抽象装备类 然后实现一个武器类继承上面的装备类 一段时间后,装备增加了进阶,时装,强化等功能,这些功能都可以提升战斗力,现在希望计算提升后的战斗 阅读全文
摘要:
有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入n和k,输出开着的灯的编号。k≤n≤1000。样例输入:7 3样例输出 阅读全文
摘要:
观察者模式:定义了对象之间一对多的依赖,当一个对象改变状态时,他的所有依赖都会收到通知并自动更新。 场景:有这样一个需求,风险监控的时候,某个用户关注了某个信息,并且希望这个信息有重大变动的时候能够往邮箱、手机、当前用户登录的网页发送这个信息。 让我们来看看根据需求马上动手的代码: 1、定义发送信息 阅读全文
摘要:
当前端点击充值的按钮是,传给后端充值类型(type)和元宝数量(yuanBao)并让后端选择充值方式付款。但是这个设计把充值的算法直接写在使用类里面,假如增加一个新的充值方式,那么就要在Account类里面增加代码。当然改善这个代码有很多方式,但是我们来看看策略模式的思想。 第一步,把充值方法抽离出 阅读全文
摘要:
h5小游戏接微信的支付,简直是在为难我胖虎,说多了都是泪。 准备工作: 准备工作一定要做好,不然很容易出错。首先是session_key这个字段,这个session_key是登录的时候需要用到的,根据code从wx.login获取到。登录成功后直接用客户端保存起来,后面支付的时候要用来签名。 其次是 阅读全文