随笔分类 - Java
摘要:类的生命周期 一个类完整的生命周期,会经历五个阶段,分别为:加载、连接、初始化、使用和卸载。其中的连接又分为验证、准备和解析三个步骤。如下图所示: 简单一句话概括,类的加载机制就是:找到需要加载的类并把类的信息加载到jvm的方法区中),然后在堆区中实例化一个java.lang.Class对象,作为方
阅读全文
摘要:背景 现代网络环境中,敏感数据的处理是至关重要的。敏感数据包括个人身份信息、银行账号、手机号码等,泄露这些数据可能导致用户隐私泄露、财产损失等严重后果。因此,对敏感数据进行脱敏处理是一种必要的安全措施。 比如页面上常见的敏感数据都是加*遮挡处理过的,如下图所示。 接下来本文将以Spring Boot
阅读全文
摘要:前言 本文将深入分析Java线程池的源码,包括线程池的创建、任务提交、工作线程的执行和线程池的关闭等过程。通过对线程池源码的解析,我们能够更好地理解线程池的原理和机制,为我们在实际开发中合理使用线程池提供指导。 文章内容较长,建议找个安静的环境慢慢细读,由于线程池涉及的内容比较多,需要至少熟悉以下知
阅读全文
摘要:阻塞队列是一种常用的并发编程工具,它能够在多线程环境下提供一种安全而高效的数据传输机制。本文将介绍阻塞队列的原理和使用场景,并通过实例演示其在多线程编程中的应用。 # 一、什么是阻塞队列 阻塞队列是一种特殊的队列,它具有以下几个特点: 1. 阻塞特性:当队列为空时,从队列中获取元素的操作将会被阻塞,
阅读全文
摘要:阅读本文前,需要储备的知识点如下,点击链接直接跳转。 [java线程详解](https://www.cnblogs.com/star95/p/17583193.html) [Java不能操作内存?Unsafe了解一下](https://www.cnblogs.com/star95/p/1761943
阅读全文
摘要:阅读本文前,需要储备的知识点如下,点击链接直接跳转。 [java线程详解](https://www.cnblogs.com/star95/p/17583193.html) [Java不能操作内存?Unsafe了解一下](https://www.cnblogs.com/star95/p/1761943
阅读全文
摘要:## 前言 C++可以动态的分类内存(但是得主动释放内存,避免内存泄漏),而java并不能这样,java的内存分配和垃圾回收统一由JVM管理,是不是java就不能操作内存呢?当然有其他办法可以操作内存,接下来有请`Unsafe`出场,我们一起看看`Unsafe`是如何花式操作内存的。 ## Unsa
阅读全文
摘要:本文中所提到的运算都是基于整数来说的,因为只有整数(包括正数和负数)在操作系统中是以二进制的补码形式运算的,关于原码、反码、补码、位运算、移位运算的背景这里不再介绍,网上资料很多,感兴趣的可自行搜索。 java中能表示整数数据类型的有byte、short、char、int、long,在计算机中占用的
阅读全文
摘要:# java线程详解 ## 线程 ### 概念 说到线程,就不得不提进程,为什么呢,因为进程是操作系统进行分配资源和调度的最小单位,比如windows系统安装的应用软件(office、qq、微信等)启动时,由操作系统协调分配资源和调度执行称之为一个进程,进程间是相互独立和隔离的。而线程是进程最小执行
阅读全文
摘要:# 前言 订单超时自动取消是电商平台中常见的功能之一,例如在淘宝、京东、拼多多等商城下单后,如果在一定的时间内没有付款,那么订单会自动被取消,是怎么做到的呢?作为技术人员我们应该了解自动取消的原理和实现逻辑,本文将介绍几种常用的技术方案,帮助开发者实现订单超时自动取消的功能。 ![](https:/
阅读全文
摘要:详细介绍synchronized锁的背景、使用方法、锁升级流程以及底层实现
阅读全文
摘要:写java时不管是我们自己new对象还是spring管理bean,尽管我们天天跟对象打交道,那么对象的结构和内存布局有多少人知道呢,这篇文章可带你入门,了解java对象内存布局。 本文涉及到JVM指针压缩的知识点,不熟悉的小伙伴可以看前面写过的一篇关于指针压缩的文章。 [JVM之指针压缩](http
阅读全文