TDW-JAVA-研发技术点纪录
5、AtomicInteger
6、使用了静态代码块,静态代码块,会在加载类的时候就将静态代码块的内容加载到内存中。
7、使用了Map来做单例模式,抽象工厂模式
public class SendPrizeStrategyFactory {private static Map<Integer, SendPrizeStrategy> sendPrizeStrategyMap = Maps.newHashMap();//这里定义一个空的Mapstatic {ApplicationContext applicationContext = ApplicationContextHolder.context; //使用团贷网封装好的工具SendPrizeStrategy baoxiangSendPrizeStrategy = applicationContext.getBean(TuanBaoxiangSendPrizeStrategy.class);//获取实例,cglib实现原理,动态代理TuanBiSendPrizeStrategy tuanBiSendPrizeStrategy = applicationContext.getBean(TuanBiSendPrizeStrategy.class);SendPrizeStrategy ticketSendPrizeStrategy = applicationContext.getBean(TicketSendPrizeStrategy.class);// 红包、实物类奖品使用 团宝箱服务发送奖品sendPrizeStrategyMap.put(PrizesTypeId.RED_BONUSES_TYPE_ID, baoxiangSendPrizeStrategy);// 用Map装入实例sendPrizeStrategyMap.put(PrizesTypeId.MATERIAL_GITF, baoxiangSendPrizeStrategy);// 团币奖品使用 团币服务发送奖品sendPrizeStrategyMap.put(PrizesTypeId.TUANBI_TYPE_ID, tuanBiSendPrizeStrategy);// 抽奖券使用,补偿抽奖券sendPrizeStrategyMap.put(PrizesTypeId.CARDS_TYPE_ID, ticketSendPrizeStrategy);}private SendPrizeStrategyFactory() {}public static void addSendPrizeStrategy(Integer prizesTypeId, SendPrizeStrategy sendPrizeStrategy) {if (!sendPrizeStrategyMap.containsKey(prizesTypeId)) {sendPrizeStrategyMap.put(prizesTypeId, sendPrizeStrategy);}}public static SendPrizeStrategy findStrategy(Integer prizesTypeId) {SendPrizeStrategy sendPrizeStrategy = sendPrizeStrategyMap.get(prizesTypeId);if (sendPrizeStrategy != null) {return sendPrizeStrategy; //获取实例}throw new AppBusinessException(Activity518ErrorCode.SEND_PRIZE_STRATEGY_NOT_FOUND);}}
8、多次使用String.format(%sAAAA%s) ,来拼接字符串,这样性能会高些吗?
9、多次使用策略模式,先定义一个抽象类,在这个抽象类里面写一些公用方法。新创建的类就继承这个抽象类,并重写抽象方法。这样可以用调用不同的类,使用不同的方法。(这样做法,在功能上来说,和switch的功能差不多,只是把case的内容放到一个类里面去了,当然用继承的方法去做的话,在别人看你的代码的时候就显得更加高大上些,但是本质还是一样的事情)
10、使用过了分布式锁,目的,防止用户多次提交。
// 获取分布式锁boolean isLock = jedisService.tryGetDistributedLock(coinLockKey, requestId, 100);
/*** 尝试获取分布式锁* @param lockKey 锁* @param requestId 请求标识* @param expireTime 超期时间* @return 是否获取成功*/public boolean tryGetDistributedLock(String lockKey, String requestId, int expireTime) {RedisConnection conn = jedisConnectionFactory.getConnection();Jedis jedis = (Jedis) conn.getNativeConnection();String result = jedis.set(lockKey, requestId, "NX", "PX", expireTime);conn.close();if (LOCK_SUCCESS.equals(result)) {return true;}return false;}
11、包装类就使用包装类的方法来进行比较数字
12、
TDW-JAVA-研发技术点纪录相关推荐
- Java研发技术学习路线
Java研发技术成长路线 作为一名Java研发者,深感Java技术的学习是一个漫长过程,从一名Java菜鸟开始,加之持之以恒的耐心和脚踏实地的精神,不间断理论的学习,不停止技术实践,终成为一名技术佼佼 ...
- Java研发方向如何准备BAT技术面试(超级干货)
背景: 最近BAT等各大互联网巨头们的校招陆陆续续都准备开始了,可能对于在校的大多数学生来说,不知道如何正确衡量自己掌握的技术,更不知道BAT这样的公司会要求自己必须具备什么样的技术能力.对于Java ...
- JAVA高级研发技术栈
一.基础篇 JVM JVM内存结构 堆.栈.方法区.直接内存.堆和栈区别 Java内存模型 内存可见性.重排序.顺序一致性.volatile.锁.final 垃圾回收 内存分配策略.垃圾收集器(G1) ...
- 2021年4月16日 阿里供应链Java研发实习面试(二面)
title: 2021年4月16日 阿里供应链Java研发实习面试(二面) tags: 面经 2021年4月16日 阿里供应链Java研发实习面试(二面)(70min) 自我介绍 介绍自己的研究生项目 ...
- Java Web技术经验总结(二)
该系列的第一篇在此:Java Web技术经验总结一,主要包含我在日常工作中的经验和心得体会(如有不足之处欢迎指出). Maven的使用经验 依赖的scope有test.provided.compile ...
- **Java有哪些悲观锁的实现_阿里秋招Java研发工程师岗:来自校友的面试还原(已拿Offer)...
前言 本篇题材来自我的校友投稿,他在最近的秋招校招中拿到了蚂蚁金服的实习生Offer,整体思路和面试题目由面试本人--小林提供(译名) 由于作者面试过程中高度紧张,本文中只列出了自己还记得的部分题目. ...
- java前沿技术_互联网百强企业架构师告诉你,Java应该这么学!云和数据超全面Java中级程序员学习路线图重磅发布!...
作为常居编程语言排行榜第一名的编程语言,Java语言以其稳定性.健壮性著称,是一门非常成熟的编程语言,多年来一直是国际上众多企业的首选编程语言. Java语言不仅吸收了C++语言的各种优点,还摒弃了C ...
- 字节JAVA研发面试
面试4轮字节Java研发岗 面试4轮字节Java研发岗 讲一下线程池参数的含义 Innodb的索引实现 为什么是B+树? Redis的使用,分布式锁的实现 操作系统虚拟内存换页的过程 TCP三次握手 ...
- Java研发知识图谱
不同行业不同公司不同岗位所用到的技术千差万别,所以该图谱不具有普适性. 该图谱基于笔者从业(电子商务/互联网金融后端)以来工作经验画出,具有一定的局限性,不过对于互联网行业Java研发知识体系具有一定 ...
- Java后端技术栈,到底如何深入学习?
Java,是现阶段中国互联网公司中,覆盖度最广的研发语言.有不少朋友问,如何深入学习Java后端技术栈,今天分享一个,互联网牛人整理出来的Java深入学习路线图,以及免费学习资料. 一.阅读源码 深入 ...
最新文章
- opencv中的createsamples.exe生成vec文件注意事项
- 光伏双反闹剧何时休?
- fortran subroutine_Fortran:派生数组与数组传递进子程序耗费时间比较
- 基于 Docker Compose 实践 .NET Core 的现代化架构 2:在容器中集成 Skywalking APM
- 1013 数素数 (20分)
- 《大道至简》周爱民读后感
- 2017年AR大会上海站干货分享
- 侧边栏配置_企业微信上线“聊天侧边栏”功能,可在外部会话时快捷使用应用...
- 在未来人类在计算机行业中扮演什么角色,刘慈欣:未来人类可能生活在计算机里...
- python中circle函数_从Python3.6 Zelle Graphics中的另一个函数调用circle函数
- spring security 的 logout 功能
- 关于下载 GAE High Replication Datastore 数据[实战篇]上
- dom4j解析XML文件,通过属性查找节点,出现异常
- TimesTen 介绍
- java 添加 psd_psd缩略图生成上传解决方案
- iphone双重认证关闭不了怎么办_Apple id双重认证,没有关闭的选项?
- 《tensorflow实战》6——强化学习之策略网络
- 使用mmdetection做实例分割
- 来自T00ls的帖子-XSS的奇技淫巧
- 可爱的灯泡眨眼表情动画特效
热门文章
- 游戏开发学习笔记——lua脚本语言——安装、汉化与小测试(解决lua运行代码乱码问题)
- ac2100 反弹shell无法粘贴_手把手带你玩转NAS 篇二十一:小米Redmi AC2100路由器刷机padavan保姆级教程...
- 【写作能力提升】写作小白需要避免的五个写作误区和灵魂五问
- 三星 P600 android,三星p600报价及测评介绍
- Html5的新增特性
- 快来看,手把手教学 满意度调查如何抽样
- python-numba库
- 第一篇 php ImageMagick 扩展错误
- mysql命令行工具打开文件_使用命令行工具mysqlimport导入数据
- matlab基础学习记录之阶跃函数、单矩形脉冲函数、周期矩形脉冲函数的构造与画图