
Java 多线程并行计算框架:ForkJoin,实战讲解!
一、摘要
从 JDK 1.7 开始,引入了一种新的 Fork/Join 线程池框架,它可以把一个大任务拆成多个小任务并行执行,最后汇总执行结果。
比如当前要计…

深度剖析 AQS 设计原理,内容相当硬核!
一、背景介绍
在之前的文章中,我们介绍了 ReentrantLock、ReadWriteLock、CountDownLatch、CyclicBarrier、S…

项目中的BO、DTO、VO、PO如何区分以及规范的使用
我们在日常开发中经常会看到各种的以‘O’结尾的类,那么这些类代表什么含义呢,我们如何规范的使用这些类呢?今天我们就来聊一聊这个话题。
1、区分BO、DTO、VO…
聊一聊比synchronized更强大的同步锁:ReentrantLock
01、背景介绍
采用synchronized进行加锁,这种锁一般都比较重,里面的实现机制也非常复杂,同时获取锁时必须一直等待,没有额外的尝试机制,如果编程不当…

真不是我吹,SpringBoot 里这款牛逼的网络工具库,我估计你没用过!
01、背景介绍
现如今的 IT 项目,由服务端向外发起网络请求的场景,基本上处处可见!
传统情况下,在服务端代码里访问 http 服务时,我们一般会使用 JD…

从源码角度3分钟理解SpringBoot的jar可以直接运行的原因和原理
在springboot项目中我们使用maven打包插件将项目打成一个jar之后,然后使用java -jar的命令就可以直接运行jar了,这是什么原理呢?今天来揭…

为什么大家都说 ThreadLocal 存在内存泄漏的风险?
01、背景介绍
在 Java web 项目中,想必很多的同学对ThreadLocal这个类并不陌生,它最常用的应用场景就是用来做对象的跨层传递,避免多次传递,…
3分钟带你看懂 GC 日志!
01、背景介绍
如何分析当前虚拟机性能呢?其中 GC 日志起到至关重要的作用。
实际上,每种垃圾收集器都有它独立的日志格式,尽管如此,虚拟机为了方便用户阅读,…

一小时徒手从0到1搭建一套图片文字识别的OCR平台
在我们日常的工作学习中,图片中的文件识别功能是非常常用的(如用户上传的图片做风控)。我们根据面向的对象不同,一般可以分成两类:
(1)面向普通用户;现有的图片文…

Java对象都是堆上分配?看完Java中对象逃逸分析就知道答案了
随着JIT编译期的发展与逃逸分析技术逐渐成熟,所有的对象都分配到堆上也渐渐变得不是一定的。在编译期间JIT会对代码做很多优化,其中有一部分优化是减少内存堆分配压…

3分钟理清Java对象头里面的那些杂事
对象头是一个对象用于保存自身状态的区域,在HotSpot虚拟机中,对象在堆内存中存储的布局可以划分为三个部分:对象头(Header)、实例数据(Instance…

ThreadLocal 实践与源码解析 ——Java
ThreadLocal 实践与源码解析
refer author: 写代码的SharkChili
写在文章开头
在多线程编程中,共享资源的管理和同步一直是开发人…

解锁滴滴ES的性能潜力:JDK 17和ZGC的升级之路
前文介绍了滴滴自研的ES强一致性多活是如何实现的,其中也提到为了提升查询性能和解决查询毛刺问题,滴滴ES原地升级JDK17和ZGC,在这个过程中我们遇到了哪些问…

软件架构一致性 —— 被忽视的研发成本
阿里妹导读
本文主要介绍了一些解决架构一致性问题的方法,以及我们应该如何去理解和应对部分不得不付出的成本。
一、两类研发活动
广义的软件研发活动涉及到需求分析…

快速成长的秘诀|学会自我培养和培养他人
本文是快速成长系列第三篇《自我培养和培养他人》,会从人才培养的目标、缺失、系统、实施几个方面介绍人才培养的实践经验。
快速成长总共三篇,分别是《完成自我认知升…

IDEA 2019.2最新解读:性能更好,体验更优,细节处理更完美!
idea 2019.2 准备
idea 2019.2正式版是在2019年7月24号发布的,本篇文章,我将根据官方博客以及自己的理解来进行说明,总体就是:性能更好…