huanghanqian
码龄6年
  • 1,810,687
    被访问
  • 387
    原创
  • 231,330
    排名
  • 228
    粉丝
关注
提问 私信

个人简介:少年,你还很菜。

  • 加入CSDN时间: 2016-03-08
博客简介:

淡然坊

博客描述:
素处以默,妙机其微。
查看详细资料
  • 5
    领奖
    总分 1,700 当月 28
个人成就
  • 获得687次点赞
  • 内容获得213次评论
  • 获得1,296次收藏
创作历程
  • 1篇
    2021年
  • 24篇
    2019年
  • 100篇
    2018年
  • 298篇
    2017年
  • 88篇
    2016年
成就勋章
TA的专栏
  • leetcode
    257篇
  • 计算机与操作系统
    1篇
  • web
    9篇
  • java
    19篇
  • 设计模式
    1篇
  • javascript
    5篇
  • 数据库
    5篇
  • 算法
    17篇
  • POJ
    17篇
  • 虚拟化
  • leetcode
    261篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

使用MyBatis动态生成sql

问题举例:有一个带占位符的模板sql,语法跟mybatis的XML是类似的,如select period, sum(amount) as sum from abc where type = '${type}' <if test='period != null'> and period = '${period}' </if><if test='debtType != null'> and debt_type = '${debtType}'
原创
发布博客 2021.08.19 ·
548 阅读 ·
1 点赞 ·
1 评论

如何更加稳妥地做校验

在工作期间,师兄教我一个更为保险的校验顺序:从JDK的AQS官方文档上https://bugs.openjdk.java.net/browse/JDK-6503247可以看到:如果是这样处理异常的话:try { ... } catch (RuntimeException e) { handle(); throw e; }那万一抛出的是throwab...
原创
发布博客 2019.12.01 ·
177 阅读 ·
1 点赞 ·
0 评论

如何在Java注解中放一个list

示例如下:public @interface CustomAnnot { String[] author() default "me"; String description() default "";}用这个注解的时候这样用:@CustomAnnot(author={"author1","author2"}, description="test")参考资料:...
原创
发布博客 2019.11.27 ·
2808 阅读 ·
0 点赞 ·
0 评论

使用Spring Cache Annotation时如何不缓存空值

在插入缓存时,会有<key,value>,我们希望value=null时,不要存入缓存,怎么实现呢?使用 unless="#result == null"注解就可以,代码示例如下:@Cacheable(value="defaultCache", key="#pk", unless="#result == null")public Person findPerson(int ...
原创
发布博客 2019.11.27 ·
460 阅读 ·
0 点赞 ·
0 评论

Spring Cache Annotation 使用的注意点和小技巧

使用spring中的cacheable注解需要注意的点,列举了如下:默认Cache Key的注意点对一个方法增加缓存是很简单的一件事,只需要简单加上@Cacheable注解就OK了。@Cacheable(value = "reservationsCache")public List<Reservation> getReservationsForRestaurant( R...
翻译
发布博客 2019.11.27 ·
837 阅读 ·
2 点赞 ·
0 评论

详解布隆过滤器的原理、使用场景和Java代码示例

今天碰到个业务,他的 Redis 集群有个大 Value 用途是作为布隆过滤器,自己之前只是听说过这个,但是没深入了解过,趁这个机会补充一下知识。在进入正文之前,之前看到的有句话我觉得说得很好:Data structures are nothing different. They are like the bookshelves of your application where you...
转载
发布博客 2019.11.21 ·
997 阅读 ·
3 点赞 ·
0 评论

Spring boot cacheable源码及默认配置

一. Spring boot cache原理第一步. 自动配置类​自动启动类:CacheAutoConfiguration 属性配置:CacheProperties 主启动类添加:@EnableCaching注解cache POM添加:<dependency><groupId>org.springframework.boot</group...
转载
发布博客 2019.11.20 ·
1036 阅读 ·
0 点赞 ·
0 评论

Spring Boot Cacheable的默认实现

StackOverFlow上有一个问题https://stackoverflow.com/questions/37780249/spring-boot-cachable-cache-size,提问者使用了Spring Boot的@EnableCaching和@Cacheable注解,想自行设置cacheable缓存的默认最大容量。public interface VendorReposito...
原创
发布博客 2019.11.18 ·
3482 阅读 ·
1 点赞 ·
1 评论

Spring之缓存注解@Cacheable

实操项目中引用:value:该缓存的方法名称,cacheName也可以使用value key:缓存的 key,可以为空,如果指定要按照 SpEL 表达式编写,如果不指定,则缺省按照方法的所有参数进行组合 unless:当方法返回空值时,就不会被缓存起来,决定是否要否定方法缓存,可以用来做条件判断 scf_company:结合redis,配置在redis的配置文件里当调用这个方法的时候,...
转载
发布博客 2019.11.18 ·
8280 阅读 ·
3 点赞 ·
1 评论

SpringBoot 自定义参数校验

作者附:可以看JBOSS官方文档:https://docs.jboss.org/hibernate/validator/4.2/reference/zh-CN/html/validator-customconstraints.html#validator-customconstraints简单校验在后端开发的过程中,验证前端参数的合法性是一个必不可少的步骤。但是参数验证会产生大量的样板代码...
转载
发布博客 2019.11.18 ·
592 阅读 ·
0 点赞 ·
0 评论

MySQL索引的更新策略

对于数据的每一次更新,MySQL并不会每次都会更新索引(针对非唯一性索引而言),索引的更新策略是这样的:在InnoDB中,增删改都会立刻修改主键or唯一索引,但是不会rebuild全局索引,而是对这些索引增加值(或移除值)。对于非唯一性索引,InnoDB会进行change buffering操作。将更改排入队列,之后再在后台将其合并到索引中。甚至,为了后续物理更新更加高效,会将变更进行合并。...
原创
发布博客 2019.11.13 ·
5301 阅读 ·
2 点赞 ·
0 评论

Spring注解执行的默认顺序

对于同一个方法,上面加了n个注解,如下所示。@AnnotationOne@AnnotationTwopublic void test() { ………………………………}如果,不加order来强制表示顺序的话,这2个注解执行的默认顺序是什么样子的呢?经查阅Spring官方文档https://docs.spring.io/spring/docs/current/spring-...
原创
发布博客 2019.11.13 ·
7151 阅读 ·
5 点赞 ·
2 评论

MySql数据库-58沈剑 架构师之路

最近在看 “58沈剑 架构师之路”的公众号,写的非常简练,干货很多。但里面也充斥了很多广告和管理类的文章,本文主要是对里面的数据库文章做一个汇总:InnoDB,5项最佳实践,知其所以然?InnoDB行锁,如何锁住一条不存在的记录?InnoDB并发如此高,原因竟然在这?InnoDB,能将数据存储在DVD里?挖坑,InnoDB的七种锁插入InnoDB自增列,居然是表锁?In...
转载
发布博客 2019.11.11 ·
207 阅读 ·
0 点赞 ·
0 评论

对含有null的List进行findAny会报Null Pointer错误

做了一个实验:List<String> list = new ArrayList<String>();list.add(null); list.add(null);Optional<String> result = list.stream().findAny();运行上面的代码会报错:因为:findAnyOptional<...
原创
发布博客 2019.10.29 ·
680 阅读 ·
0 点赞 ·
0 评论

Java8中findAny和findFirst的区别

试验了一下java stream中的findAny和findFirst,发现都返回了列表中的第一个元素。那么,这两种方法的区别是什么呢?查看了一下Java API document:findFirst:findFirstOptional<T>findFirst()Returns anOptionaldescribing the first element ...
原创
发布博客 2019.10.29 ·
71443 阅读 ·
16 点赞 ·
5 评论

Java的DateTimeFormatter/SimpleDateFormat如何转义特殊字符

对于JAVA中的 DateTimeFormatter,或者主要是为了日期能够格式化地生成字符串,比如可以使用 yyyy-MM-dd HH:mm:ss 来生成 2019-10-16 21:00:16 这种格式的字符串。这里有一个需求,希望生成[2019-10-16 21:00:16] 这种字符串。可以看到它的左右两边多了中括号,而此时,我如果使用public static void ma...
原创
发布博客 2019.10.21 ·
2182 阅读 ·
3 点赞 ·
0 评论

1元,5元,10元,20元,50元、100元面值人民币组合给定x元的问题

问题描述目前市面上的纸币主要有1元,5元,10元,20元,50元、100元六种,如果要买一件商品x元,有多少种货币组成方式?解答我们先进行如下变量的定义:dp[i][sum] = 用前 i 种硬币构成sum金额的所有组合数。那么题目的问题实际上就是求dp[m][sum],即用前m种硬币(所有硬币)构成sum的所有组合数。V0=1,V1=5,V2=10,V3=20……...
原创
发布博客 2019.09.20 ·
4534 阅读 ·
1 点赞 ·
0 评论

为什么String的hashCode选择 31 作为乘子

本文转载自田小波的https://www.tianxiaobo.com/2018/01/18/String-hashCode-方法为什么选择数字31作为乘子/某天,我在写代码的时候,无意中点开了 String hashCode 方法。然后大致看了一下 hashCode 的实现,发现并不是很复杂。但是我从源码中发现了一个奇怪的数字,也就是本文的主角31。这个数字居然不是用常量声明的,所以没法从字...
转载
发布博客 2019.09.20 ·
614 阅读 ·
13 点赞 ·
1 评论

慎用HashCode作为Unique Key

处理数据的过程中,希望对数据进行groupBy操作。举个例子,data的组成是<month, baseId, amount>。数据A = <"2019-03","195",100>数据B = <"2019-04","185", 200>数据C =<"2019-03","195", 300>数据D=<"2019-04","...
原创
发布博客 2019.09.03 ·
1004 阅读 ·
0 点赞 ·
0 评论

mysql left join之后的行数有可能与左表的行数不同

首先,谈一下left join时,放在 on 后面的条件与放在 where 后面的条件有什么不同:on是在生成连接表的起作用,where是生成连接表之后对连接表再进行过滤:当使用left join时,无论on的条件是否满足,都会返回左表的所有记录,对于满足的条件的记录,两个表对应的记录会连接起来,对于不满足条件的记录,那右表字段全部是null;当使用right join时,类似,只不...
原创
发布博客 2019.08.17 ·
6794 阅读 ·
0 点赞 ·
3 评论
加载更多