会员
周边
新闻
博问
闪存
赞助商
YouClaw
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
雪山上的蒲公英
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
3
4
5
6
7
8
9
10
11
···
66
下一页
2020年12月24日
CGLib实现不同类中同名不同类型属性复制
摘要: 进行对象复制时,很多框架提供了公共方法,如org.springframework.beans.BeanUtils#copyProperties,org.apache.commons.beanutils.PropertyUtils#copyProperties,org.apache.commons.b
阅读全文
posted @ 2020-12-24 10:03 雪山上的蒲公英
阅读(769)
评论(0)
推荐(0)
2020年12月9日
stream 伪复用实现
摘要: 如下Demo,想要通过复用stream来实现多次统计,代码中是存在缺陷的 Stream<Person> personStream = personList.stream().filter(p -> "aa".equals(p.getName())); //年龄总和 Integer ageSum =
阅读全文
posted @ 2020-12-09 20:29 雪山上的蒲公英
阅读(534)
评论(0)
推荐(1)
2020年12月7日
使用RedisTemplate存储Map集合的一点注意
摘要: SpringBoot框架无需进行复杂整合,可使用SpringBoot依赖所引入的 org.springframework.data.redis.core.RedisTemplate来直接进行操作,但需要一些特殊的配置: 配置类中,实例化时需要进行序列化配置: import org.springfra
阅读全文
posted @ 2020-12-07 19:45 雪山上的蒲公英
阅读(10219)
评论(0)
推荐(2)
jvm的几个概念误区
摘要: serial old是一种垃圾回收器 serial old其实表示的是一种说法,老年代单线程回收。在不同的垃圾回收器中实现各部相同,现在有以下几种实现g1MarkSweep,psMarkSweep,genMarkSweep。 parallel gc日志里的老年代名称有时候会变 其实是老年代回收器不一
阅读全文
posted @ 2020-12-07 19:21 雪山上的蒲公英
阅读(202)
评论(0)
推荐(0)
JDK动态代理和CGLib动态代理的对比
摘要: JDK动态代理:利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。CGLib动态代理:利用ASM(开源的Java字节码编辑库,操作字节码)开源包,将代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。 1. JDK动态代理 1.1 角色
阅读全文
posted @ 2020-12-07 19:19 雪山上的蒲公英
阅读(7420)
评论(0)
推荐(2)
2020年11月8日
AbstractQueuedSynchronizer详解(转)
摘要: 转自:https://www.cnblogs.com/chengxiao/p/7141160.html 1. 简介 Java并发包(JUC)中提供了很多并发工具,这其中,很多我们耳熟能详的并发工具,譬如ReentrangLock、Semaphore,它们的实现都用到了一个共同的基类--Abstrac
阅读全文
posted @ 2020-11-08 23:51 雪山上的蒲公英
阅读(482)
评论(0)
推荐(0)
2020年11月3日
mybatis源码解析(连载)
摘要: 一年多了还没憋完,腾出空再写分析文章吧。 https://github.com/xssdpgy/mybatis-source-code-analysis/commits/master
阅读全文
posted @ 2020-11-03 22:40 雪山上的蒲公英
阅读(144)
评论(0)
推荐(0)
2020年11月2日
HashMap源码解析(基于JDK1.8)
摘要: 1. HashMap继承体系 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {} 结合下面的类继承关系图,可以看出HashMap的主要作用: HashMa
阅读全文
posted @ 2020-11-02 03:52 雪山上的蒲公英
阅读(174)
评论(0)
推荐(0)
2020年11月1日
线程池ThreadPoolExecutor——Worker源码解析
摘要: 线程池任务运行的主流程如下: 线程池调用execute提交任务—>创建Worker(设置属性thead、firstTask)—>worker.thread.start()—>实际上调用的是worker.run()—>线程池的runWorker(worker)—>worker.firstTask.ru
阅读全文
posted @ 2020-11-01 13:34 雪山上的蒲公英
阅读(3270)
评论(1)
推荐(1)
Java线程池原理分析
摘要: 1. 简介 Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 降低资源消耗 。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度 。当任务到达时,任务可以不需要等到线程创建就能立即执行
阅读全文
posted @ 2020-11-01 01:06 雪山上的蒲公英
阅读(427)
评论(0)
推荐(0)
上一页
1
···
3
4
5
6
7
8
9
10
11
···
66
下一页
公告
/* 返回顶部代码 */