千万不要把 Request 传递到异步线程里面!有坑!

前几天在网上冲浪的时候看到一篇技术文章,讲的是他把一个 request 请求传递到了线程池里面,然后遇到了一个匪夷所思的情况。
他写了这篇文章,把自己针对这个问…

Java异常处理和最佳实践(含案例分析)

如何处理Java异常?作者查看了一些异常处理的规范,对 Java 异常处理机制有更深入的了解,并将自己的学习内容记录下来,希望对有同样困惑的同学提供一些帮助。…

原理+配置+实战,Canal一套带走

哈喽大家好,我是阿Q!
前几天在网上冲浪的时候发现了一个比较成熟的开源中间件——Canal。在了解了它的工作原理和使用场景后,顿时产生了浓厚的兴趣。今天,就让我…

Java内部类有坑,100%内存泄露!

目录

简介

为什么要持有外部类

实例:持有外部类

实例:不持有外部类

实例:内存泄露

不会内存泄露的方案

简介
「说明」…

图解JVM内存模型及JAVA程序运行原理

本文主要介绍了JVM内存模型及JAVA程序运行原理。
一、JAVA语言的特点
在进入正题之前,先问一个老生常谈的问题,相较于C,JAVA语言的优势是什么?相信…

Java中如何获得A<T>泛型中T的运行时类型及原理探究

本文从Java的泛型开始,研究反射针对泛型的扩展,类型擦除的影响。然后通过生成匿名类实例的小技巧,获得了泛型的运行时类型的技巧。(后台回复【Java单元测试实…

值得收藏!如何快速画出一幅漂亮的架构图

这篇文章总结了常用的架构图类型,可以借鉴笔者提供的模板,快速地产出符合业务需要的架构图。
为什么要画好一幅架构图?一幅漂亮的架构图既是创作者的深度结构化思考和…

TOGAF(企业架构)方法论介绍PPT

IDEA中如何开启Java的远程调试

实际的开发中,有些问题只会发生在预发环境(或生产环境)而本地开发环境可能没办法重现。如果碰到这种情况,此时定位问题原因很可能是一个非常耗费时间且低效的过程,那么…

一文吃透 JVM 中的垃圾收集器

01、背景介绍
在之前的几篇文章中,我们介绍了 JVM 内部布局、对象的创建过程、运行期的相关优化手段以及垃圾对象的回收算法等相关知识。
今天通过这篇文章,结…

如何快速定位和处理线上OOM

在日常的Java开发中,有效的内存管理是保证应用稳定性和可用性的关键指标之一,如果内存使用不当很容易导致内存的泄露甚至出现OOM。常见的导致OOM的原因有如下:…

一文吃透 JVM 对代码的几种优化手段!

01、背景介绍
在之前的文章中我们谈到过,相比 C/C++ 语言,Java 语言在运行效率方面要稍逊一些,因为 Java 应用程序是在虚拟机上运行,而 C/C…

【技术探秘】Java虚拟机:从萌芽到辉煌的传奇历程

众所周知,Java 经过多年的发展,已经从一门单纯的计算机编程语言,发展成了一套成熟的软件解决方案。从互联网到企业平台,Java 是目前使用最广泛的编程语言。

如何在 Spring Boot 中实现优雅停机?

大家好,我是志哥,今天推荐一个特别实用的 Spring Boot 技术特性,它就是“如何实现服务优雅停机?”,下面我们一起来看看具体技术实践!
01、故事背景 …

3分钟秒懂 JVM 中垃圾对象的回收算法!

01、背景介绍
在之前的文章中,我们介绍了 JVM 内部布局、对象的创建过程以及运行期的相关优化手段。
今天通过这篇文章,我们一起来了解一下对象回收的判定方式…

电商设计订单超时未支付关闭的方案整理

电商企业中订单下单后在规定的时间中(常见的是15分钟)用户没有支付就会执行订单关闭操作。下图是订单下单后等待用户支付的图

针对订单超时未关闭的解决方案有很多种…

手把手带你开发一套用户权限系统,精确到按钮级

在实际的软件项目开发过程中,用户权限控制可以说是所有运营系统中必不可少的一个重点功能,根据业务的复杂度,设计的时候可深可浅,但无论怎么变化,设计的思路基本都是围…

as-if-serial语义和happens-before原则

1、重排序
为了提高程序的执行性能,编译器(如JVM在编译Java代码)和处理器(如CPU在执行JVM字节码)常常会对指令做成重排序。
在Java中重排序有以下…

手撕一个简易版的SpringMVC框架,yyds!

在商业网站开发中,Spring MVC 可以说是目前最流行的框架,之所以如此的流行,原因很简单:编程简洁、上手简单!
记得刚开始入行的时候,最先接触到的是Str…

深入解析线程的等待与唤醒机制,硬核干货!

01、背景介绍
在之前的线程文章中,我们介绍了synchronized和volatile关键字,使用它能解决线程同步的问题,但是它们无法解决线程之间协调和通信…