Java基础
java基础
lucky_CCC
这个作者很懒,什么都没留下…
展开
-
Java-实际开发中,将同样属性的不同-DTO-类优雅映射的最佳实践
业务中使用依赖方 DTO 类所带来的问题我负责的系统所依赖的部分服务接口需要重构,把对应的接口从 A 服务迁移到了 B 服务,虽然入参出参格式都一样,但包路径完全变了。而原有的 A 服务仍然有接口依赖,所以我必须要兼容两种【类名一样结构几乎一样!】但【包路径完全不同!】的出入参。但由于我这边的系统代码结构中业务逻辑一直使用了 A 服务提供的 SDK 中的 DTO 定义来做业务参...原创 2020-04-07 00:36:01 · 3298 阅读 · 0 评论 -
cglib动态代理和jdk动态代理的区别与应用
1,引入如果从一个Controller调用Service的非事务方法a,然后在a里调用事务方法b,b事务生效吗?public void update() { updateActual(); int a = 1 / 0; } @Transactional public void updateActual() { Wit...原创 2020-03-29 11:05:24 · 181 阅读 · 0 评论 -
ConcurrentHashMap原理分析(1.7 1.8)
1.8中使用一个volatile类型的变量baseCount记录元素的个数,当插入新数据或则删除数据时,会通过addCount()方法更新baseCount,实现如下:1、初始化时counterCells为空,在并发量很高时,如果存在两个线程同时执行CAS修改baseCount值,则失败的线程会继续执行方法体中的逻辑,使用CounterCell记录元素个数的变化;2、如果CounterC...原创 2020-03-28 18:28:50 · 224 阅读 · 0 评论 -
ConcurrentHashmap size(1.7 1.8)
ConcurrentHashmap size 1.8方法实现1.8中使用一个volatile类型的变量baseCount记录元素的个数,当插入新数据或则删除数据时,会通过addCount()方法更新baseCount,实现如下:if ((as = counterCells) != null || !U.compareAndSwapLong(this, BASECOUNT, b = b...原创 2020-03-28 18:27:17 · 1005 阅读 · 0 评论 -
Java程序内存分析:使用mat工具分析内存占用
在工作中可能会遇到内存溢出这种灾难性的问题,那么程序肯定是存在问题,找出问题至关重要,上一篇文章讲了jmap命令的使用方法,当然用jmap导出的文件我们也看不懂啊,那就交给memory analyzer(mat)这个工具,让他帮助我们来观察程序的内存分布情况吧。1.用jmap生成堆信息2.将堆信息导入到mat中分析 3. 生成分析报告HistogramDominator ...原创 2020-03-28 09:14:45 · 679 阅读 · 0 评论