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深入学习路线图,以及免费学习资料. 一.阅读源码 深入 ...
最新文章
- 调查:中国内地受访者每年花约40天用于各种“等”
- ORACLE设置用户密码不过期
- 【实用】ABAP“FOR ALL ENTRIES”的Hints 优化
- 菜鸟学C语言(五)之求定积分
- 零售业去“O”,不可逆之变
- 怎么在mysql创建数据库怎么加入学号_数据库怎么创建学生信息表
- firefox下可恶的value
- linux java 部署 生产环境
- 非导向传输媒体| 计算机网络
- Go单元测试--模拟服务请求和接口返回
- spring+mybatis+druid+mysql+maven事务配置
- python数据库介绍_Python数据库:MYSQL讲解介绍
- python免费课程400节-太原Python编程课哪家比较有优势
- 又找到一个免费的ASP.net2.0免费空间,支持MS Sql Server Express2005 及Ftp
- java 数据字典使用_java中数据字典怎么用?图文详解
- 接口测试用例设计 - 精简版
- 东南亚金融服务商Pundi X正式加入 Achain 生态
- 【知识图谱】阿里巴巴电商知识图谱
- Android播放M3U8格式视频失败
- java中的“属性”:property、attribute、parameter
热门文章
- 大数据测试-大数据技术学习资料篇(大数据开发、测试)
- 最近因为突然喜欢这方面的ui设计,所以搜刮了很多我试过可用性强的界面,又可爱又实用···分享给大家咯...
- 手工测试SSL/TLS的脆弱性
- 宝付开展2021年国家网络安全宣传周活动
- 网页无插件直播视频平台EasyNVR老版本更新版本后CPU占用过高怎么解决?
- mysql 导入数据 索引_MySQL 索引、数据导入、数据导出
- 电动汽车的三电系统概述
- 【精选】JAVA算法题(二十三)
- vue项目更改网页标题与图标
- Redis命令详解:HyperLogLog