Java
技术小菜jishuxiaocai.com
这个作者很懒,什么都没留下…
展开
-
MDC 优雅的追踪日志方案
通过什么方式,可以在logger的输出结果上自动附加一个标识?日常开发中,为了能够快速定位问题,通常需要在日志中记录请求url,请求方法,用户ID,请求ID等等等等。硬编码的形式log.info("requestUrl:{}, userId: {}......", requestUrl, userId);显然是无法满足要求的,这样实现工作量大,易出错,改动也极其不便。解决方案使用MDC只需要几行代码就能轻松应对上述需求。实现一个Filter,使用MDC.put(key, val)写入需要打印的参数。原创 2020-05-23 02:10:31 · 316 阅读 · 0 评论 -
Java集合之ArrayList
文章目录底层数据结构构造函数add(E e)add(int index, E e)remove(int index)ConcurrentModificationExceptionsubList()小结底层数据结构ArrayList的底层数据结构是数组transient Object[] elementData;//底层数据结构,数组private int size;//已存放数量这里先说一下ArrayList中大量使用的复制数组的方法,该方法是一个native方法,jvm进行了特殊的优化,比J原创 2020-05-22 02:46:38 · 169 阅读 · 0 评论 -
抽奖小程序设计开发
功能设计每次抽奖可设一二三等奖,没中大奖中个安慰奖也能提高用户对抽奖活动的信任度和参与感。分享砍价、分享增加中奖概率,驱动用户更多地分享裂变,获取更多流量。奖品可设置指定人数开奖、指定时间开奖两种类型。每日推送订阅消息,召回用户,提高留存。表结构微信用户表 t_user_info管理员表 t_admin_user抽奖奖项表 t_lottery用户抽奖记录表 t_user_lottery用户抽奖码 t_lucky_code中奖记录表 t_user_prize砍价商品表 t_gi原创 2020-05-21 23:13:45 · 1029 阅读 · 0 评论 -
【面试题】多线程交替打印
这两天在知乎上看到不同的人都问了这个问题,回想起当年找实习的时候也写过这个问题,觉得还蛮有意思的,就在这里记录一下。最常见的是使用 notify() wait()public class Demo { public static void main(String[] args) { Object lock = new Object(); new Printer("线程 A", lock).start(); new Printer("线程 B", l原创 2020-05-21 00:27:37 · 167 阅读 · 0 评论