1、使用@Async 注解 ,使用spring 异步处理方法(https://blog.csdn.net/hry2015/article/details/67640534)
2、使用@Qualifier(用哪个),多个实例实现了一个接口,在注入的时候告诉spring用哪个
(https://www.cnblogs.com/smileLuckBoy/p/5801678.html)
3、幂等性,就是多次操作,结果都一样。比如,读取一个文件,1次和10次,读出来的内容应该是一样的。
4、RestTemplate,简单来说就是,spring的一个操作rest风格的工具类,get,post,put,delete 随便选择

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-研发技术点纪录相关推荐

  1. Java研发技术学习路线

    Java研发技术成长路线 作为一名Java研发者,深感Java技术的学习是一个漫长过程,从一名Java菜鸟开始,加之持之以恒的耐心和脚踏实地的精神,不间断理论的学习,不停止技术实践,终成为一名技术佼佼 ...

  2. Java研发方向如何准备BAT技术面试(超级干货)

    背景: 最近BAT等各大互联网巨头们的校招陆陆续续都准备开始了,可能对于在校的大多数学生来说,不知道如何正确衡量自己掌握的技术,更不知道BAT这样的公司会要求自己必须具备什么样的技术能力.对于Java ...

  3. JAVA高级研发技术栈

    一.基础篇 JVM JVM内存结构 堆.栈.方法区.直接内存.堆和栈区别 Java内存模型 内存可见性.重排序.顺序一致性.volatile.锁.final 垃圾回收 内存分配策略.垃圾收集器(G1) ...

  4. 2021年4月16日 阿里供应链Java研发实习面试(二面)

    title: 2021年4月16日 阿里供应链Java研发实习面试(二面) tags: 面经 2021年4月16日 阿里供应链Java研发实习面试(二面)(70min) 自我介绍 介绍自己的研究生项目 ...

  5. Java Web技术经验总结(二)

    该系列的第一篇在此:Java Web技术经验总结一,主要包含我在日常工作中的经验和心得体会(如有不足之处欢迎指出). Maven的使用经验 依赖的scope有test.provided.compile ...

  6. **Java有哪些悲观锁的实现_阿里秋招Java研发工程师岗:来自校友的面试还原(已拿Offer)...

    前言 本篇题材来自我的校友投稿,他在最近的秋招校招中拿到了蚂蚁金服的实习生Offer,整体思路和面试题目由面试本人--小林提供(译名) 由于作者面试过程中高度紧张,本文中只列出了自己还记得的部分题目. ...

  7. java前沿技术_互联网百强企业架构师告诉你,Java应该这么学!云和数据超全面Java中级程序员学习路线图重磅发布!...

    作为常居编程语言排行榜第一名的编程语言,Java语言以其稳定性.健壮性著称,是一门非常成熟的编程语言,多年来一直是国际上众多企业的首选编程语言. Java语言不仅吸收了C++语言的各种优点,还摒弃了C ...

  8. 字节JAVA研发面试

    面试4轮字节Java研发岗 面试4轮字节Java研发岗 讲一下线程池参数的含义 Innodb的索引实现 为什么是B+树? Redis的使用,分布式锁的实现 操作系统虚拟内存换页的过程 TCP三次握手 ...

  9. Java研发知识图谱

    不同行业不同公司不同岗位所用到的技术千差万别,所以该图谱不具有普适性. 该图谱基于笔者从业(电子商务/互联网金融后端)以来工作经验画出,具有一定的局限性,不过对于互联网行业Java研发知识体系具有一定 ...

  10. Java后端技术栈,到底如何深入学习?

    Java,是现阶段中国互联网公司中,覆盖度最广的研发语言.有不少朋友问,如何深入学习Java后端技术栈,今天分享一个,互联网牛人整理出来的Java深入学习路线图,以及免费学习资料. 一.阅读源码 深入 ...

最新文章

  1. 调查:中国内地受访者每年花约40天用于各种“等”
  2. ORACLE设置用户密码不过期
  3. 【实用】ABAP“FOR ALL ENTRIES”的Hints 优化
  4. 菜鸟学C语言(五)之求定积分
  5. 零售业去“O”,不可逆之变
  6. 怎么在mysql创建数据库怎么加入学号_数据库怎么创建学生信息表
  7. firefox下可恶的value
  8. linux java 部署 生产环境
  9. 非导向传输媒体| 计算机网络
  10. Go单元测试--模拟服务请求和接口返回
  11. spring+mybatis+druid+mysql+maven事务配置
  12. python数据库介绍_Python数据库:MYSQL讲解介绍
  13. python免费课程400节-太原Python编程课哪家比较有优势
  14. 又找到一个免费的ASP.net2.0免费空间,支持MS Sql Server Express2005 及Ftp
  15. java 数据字典使用_java中数据字典怎么用?图文详解
  16. 接口测试用例设计 - 精简版
  17. 东南亚金融服务商Pundi X正式加入 Achain 生态
  18. 【知识图谱】阿里巴巴电商知识图谱
  19. Android播放M3U8格式视频失败
  20. java中的“属性”:property、attribute、parameter

热门文章

  1. 大数据测试-大数据技术学习资料篇(大数据开发、测试)
  2. 最近因为突然喜欢这方面的ui设计,所以搜刮了很多我试过可用性强的界面,又可爱又实用···分享给大家咯...
  3. 手工测试SSL/TLS的脆弱性
  4. 宝付开展2021年国家网络安全宣传周活动
  5. 网页无插件直播视频平台EasyNVR老版本更新版本后CPU占用过高怎么解决?
  6. mysql 导入数据 索引_MySQL 索引、数据导入、数据导出
  7. 电动汽车的三电系统概述
  8. 【精选】JAVA算法题(二十三)
  9. vue项目更改网页标题与图标
  10. Redis命令详解:HyperLogLog