摘要: 一、Synchronized锁四个阶段概述 java中synchronize锁分为以下四个阶段: 无锁 偏向锁 轻量级锁 重量级锁 其中偏向锁和轻量级锁是从java1.6开始引入。各阶段之间的切换,如下图: 从图中会发现,其实偏向锁是可以变成无锁的,这看似不符合我们认知中的锁可以升级不可以降级。单这 阅读全文
posted @ 2019-10-16 23:37 豆豆323 阅读(2614) 评论(0) 推荐(2) 编辑
摘要: 笔者初次接触锁相关知识,是经典的卖票问题中引入了synchronize。 一、synchronize的几种用法: 讲到synchronize,总归逃不开synchronize的几种基本用法: 修饰实例方法 修饰代码块(修饰对象、类) 修饰静态方法 下面我们就此逐一讲解: synchronize修饰实 阅读全文
posted @ 2019-10-16 23:35 豆豆323 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 之前说过,java1.7开始,当数组长度多余32的时候,使用Timsort排序(https://www.cnblogs.com/fbw-gxy/p/7598151.html) 然后最近开发中遇到类似下图中的代码导致报错: a.stream().sorted((k1,k2)->{ if(k1<k2){ 阅读全文
posted @ 2019-10-15 01:47 豆豆323 阅读(2632) 评论(0) 推荐(0) 编辑
摘要: 曾经和之前公司leader聊过,如何面试1年左右工作经验的java开发。当时我的leader当场说了一个他常用的面试笔试问题,给定list内含有1,2,3,4,5五个值,如何移除值为2的参数。 从java1.6的角度来看,这是一个很容易出坑的问题,毕竟如果你代码写成以下这样,就说明你上套了: 这是刚 阅读全文
posted @ 2019-10-12 01:00 豆豆323 阅读(1214) 评论(0) 推荐(0) 编辑
摘要: 一般来讲,对一些post请求,我们可以使用@valid+javax.validation.constraints包下注解的方式,优雅把参数验证放在control层的requst中,举例说明如下图: 但是此时,如果我们知道可以修改的状态只能为枚举类中存在的值,并没有已有的注解可以用,我们可以采用以下代 阅读全文
posted @ 2019-10-11 23:45 豆豆323 阅读(14214) 评论(0) 推荐(0) 编辑
摘要: 首先关于唯一id生成,个人比较推崇美团的Leaf,具体介绍可见链接: https://tech.meituan.com/2017/04/21/mt-leaf.html 但这个框架未免有些太重了,笔者之前看到项目中生成方式是时间戳(精确到秒)+四位随机(数字+字母)的方式,看起来简单轻巧,但在高并发场 阅读全文
posted @ 2019-10-10 23:36 豆豆323 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 9012年了,请放弃(a!=null && a.getFiled()!=null)或者封装后写成(!ObejectUtil.isEmpty(a) && !ObjectUtil.isEmpty(a.getFiled()))的写法。快来交接下Optional吧。 Optinal的用法一抓一大片,此处不再 阅读全文
posted @ 2019-09-26 23:47 豆豆323 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 我们常见的几个索引失效场景,大致有以下几种: 1、String型数据使用int直接查 2、like ’%a‘的情况 3、组合索引a,b单独使用b 4、命中数据过多到时扫描全表 5、索引列中有计算或者使用了函数 6、a='x' or b='y',此时a有索引但是b无索引 最近遇到的应该属于4中的一种特 阅读全文
posted @ 2019-09-26 23:13 豆豆323 阅读(798) 评论(0) 推荐(0) 编辑
摘要: InheritableThreadLocal虽然解决了线程异步,但是只能在创建线程时才能生效,但如果我们使用线程池等容器,InheritableThreadLocal就失效了,为此,我们引入阿里开源的TransmittableThreadLocal 阅读全文
posted @ 2019-09-26 23:01 豆豆323 阅读(192) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal大发什么都好,但如果我们要做单独启线程做异步操作,ThreadLocal是无法从父线程传递到子线程的,此时,jdk中自带的InheritableThreadLocal露面了。 阅读全文
posted @ 2019-09-26 22:59 豆豆323 阅读(148) 评论(0) 推荐(0) 编辑