进程与线程概念、区别、以及线程间的通信 概念 # 进程是对程序运行时的封装,是操作系统分配资源的基本单位,实现操作系统的并发。 线程是进程的子单位,是CPU调度和分派的基本单位,实现进程内部的并发。是OS识别的最小执行与调度单位,每个线程独占一个虚拟处理器,每个线程完成不同的任务,但共相一个地址空间。 区别 #…
当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化。但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度。即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法。本篇会介绍这些通用的GC优化策略和相关实践案例,主要包括如下内容:…
摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。 简介…
灵魂拷问1:还在为新项目工具类搬迁而烦恼? 灵魂拷问2:还在为项目中工具类维护而烦恼? 📘简述 Hutool 它是一个Java工具集类库,包含了很多静态方法的封装:流处理、时间日期处理、正则处理、加解密处理、文件处理、集合处理等,可以说是项目中几乎所有XxxxUtil的替代品,它可以使你更多的关注代码逻辑,优雅的写出高效代码,避免“复制粘贴,改改再战”。…
之前,在 Java新特性专栏 open in new window 中,我们简单介绍了Java 21正式发布的 虚拟线程 open in new window 。 昨天,正好看到一个讲解此内容的视频,非常不错,所以DD这里给大家翻译好了,感兴趣的可以看看。可以进一步了解虚拟线程。 A BiliBili video 该视频采用Chrome插件…
G1垃圾回收器是在Java7 update 4之后引入的一个新垃圾回收器,主要目的是用来替代CMS。 G1最大的特点是引入分区的思路,弱化了分代的概念,合理利用垃圾收集各个周期的资源,解决了其他收集器甚至CMS的众多缺陷。从而实现进一步降低暂停时间的同时,兼顾良好的吞吐量。 那么G1垃圾回收器的细节是怎么样的呢?…
关于身份验证,之前介绍过几个了,比如: 什么是JWT 什么是OAuth 2.0 那么Session和Token之间的区别是什么呢?都有哪些优缺点,都适用于哪些场景呢? 下面一起跟着下面这个视频学习一下吧: A BiliBili video 如果您平时也有上油管看前沿视频的话也可以装一个 Youtube中文配音 open in new window…
做个日常记录,今天调试一个使用Flux和R2DBC的应用,发现使用IDEA启动的时候报了下面的红色警告: OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been…
当网站出于某种原因没能正常显示页面的时候,经常用户受到的是一个三位数的错误,比如:401、404、500等。 为什么经验老道的程序员可以根据此信息快速的定位问题,而有的程序员却要排查很久呢?…
NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式。 那么NIO的本质是什么样的呢?它是怎样与事件模型结合来解放线程、提高系统吞吐的呢?…