- 博客(10)
- 收藏
- 关注
原创 避坑总结-1
一、List集合的坑:1.1 Arrays.asList()坑 不能直接使用Arrays.asList()转换基本类型的数组,这样会将整体数组作为对象,转为具有一个元素的集合,应使用stream流做限制,或者新创建的java.util的集合接1.2 Arrays.asList()坑 数组转集合后,默认使用Arrays的内部ArrayList,继承自AbstractList,不支持集合的更新操作,会抛异常2 List.subList()坑,subList()返回的集合是原集合的视图,如果做更新操作,会和
2021-09-13 16:32:05 92
原创 编程式事务
编程式事务TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition());try{…}catch{log.info();transactionManager.rollback(status);}
2020-12-14 16:47:57 86
原创 RocketMQ消息监听
定义生产者初始化生产者//消息监听处理完业务后,必须手动ACK消息,不然会重复消费,直到放入死信队列DefaultMQPushConsumer consumer = new DefaultMQPushConsumer();consumer.registerMessageListener(new MessageListenerConcurrently() { @Override public ConsumeConcurrentlyStatus consumeMessage(Li.
2020-12-07 18:18:21 3242 3
原创 测试程序的执行时长
// 创建并启动计时器 Stopwatch stopwatch = Stopwatch.createStarted(); // 停止计时器 stopwatch.stop(); System.out.printf("执行时长:%d 豪秒.", stopwatch.elapsed(TimeUnit.MILLISECONDS));
2020-09-22 10:06:26 150
原创 java的stream流详解
list.stream().collect(Collectors.groupingBy(p -> p.getCode())) 根据某个字段分组,map接收strings.stream().filter(p -> 3 == p.getId()).sorted(Comparator.comparing(Procedure::getId)).collect(Collectors.toList());对某个字段进行过滤,排序...
2020-08-24 16:52:05 121
原创 constraints下的校验详解
javax.validation.constraints包各种校验用法详解@NotNull 被注释的元素不为空@NotEmpty 被注释的元素不为空字符@NotBlank@AssertTrue 被注释的元素必须为true@Future 被注释的元素必须当前时间之后@Past 被注释的元素必须当前时间之前@DecimalMax 校验decimal类型的最大值@Digits(a,b) 被注释的元素必须是一个数字,且在两个参数指定范围@Email 邮箱校验@Negative 被注
2020-08-21 15:48:11 663
原创 ReentractLock可重入锁讲解
公平所:线程按照实现定义好的顺序执行,保证执行顺序的正确性,但是性能会有所降低非公平所: 线程为了性能好,执行的顺序可能实现定义好的不一样,非公平锁的吞吐量要比公平锁大Synchronized和Lock都属于非公平所可重入锁又成为递归锁代码public synchronized void method1(){method2();}public synchronized void m...
2019-04-15 08:41:34 926
原创 线程池的底层实现原理:详解
一:线程池的七大参数:corePoolSize(核心线程数)maximumPoolSize(线程池的最大连接数)keepAliveTime(当线程空闲超过一段时间,线程池会判断:运行的线程数大于corePoolSize,线程被停掉)TimeUnitBolckingQueue 阻塞队列RejectExecutionHandler 有四种拒绝策略二:底层实现原理:...
2019-04-12 23:06:06 4146 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人