自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿文的博客

日常学习,工作解决问题记录

  • 博客(349)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 JVM GC 分类与原理深度解析

在 Java 开发中,JVM 垃圾回收(Garbage Collection,GC)机制是性能调优的核心。GC 的自动内存管理机制让 Java 在安全性和开发效率方面大大领先于手动管理内存的语言。但 GC 本身并非“魔法”,当我们深入理解其原理与分类,才能真正写出高性能、低延迟的应用。GC 的分类依据(按算法 / 按代际 / 按收集器)每类 GC 背后的核心原理主流垃圾收集器对比分析你需要记住的 GC 核心知识点GC = 自动内存管理机制分代收集策略效率更高合适的算法 + 收集器才高效。

2025-05-26 22:32:28 233

原创 垃圾回收(GC)基础原理全面解析

垃圾回收(Garbage Collection,简称 GC)是 Java 的核心优势之一,它让开发者无需手动管理内存,极大降低了内存泄露和悬挂指针的风险。但当应用进入高并发、大数据量的场景时,GC 机制本身反而会成为性能瓶颈。理解 GC 的原理不仅有助于你写出更高效的代码,更是你成为高级 Java 开发者、架构师的必修课!你应该掌握的核心点Java 的 GC 是自动化内存管理的基石✅可达性分析 + 分代回收构成 GC 基础✅不同代使用不同算法提升性能✅。

2025-05-21 22:08:44 98

原创 深入解剖 G1 收集器的分区模型与调优策略

分区结构灵活可预测的 GC 停顿混合回收提升吞吐支持并发标记、并发清理自动调整内存分区,减轻调优压力下一篇,垃圾回收(GC)基础原理,敬请关注!

2025-05-20 19:40:02 69

原创 JVM 调优实战入门:从 GC 日志分析到参数调优

掌握 GC 日志分析 + JVM 参数配置,是每一个中高级 Java 开发者/架构师的必备核心技能。只有深入理解 JVM 的运行机制,我们才能写出更加高效、稳定、可维护的企业级应用。下一篇,我们将深入解剖 G1 收集器的分区模型与调优策略,敬请关注!

2025-05-17 10:03:57 230

原创 类加载机制详解:双亲委派模型与打破它的方式

BootstrapClassLoader(引导类加载器)↑ExtensionClassLoader(扩展类加载器)↑AppClassLoader(应用类加载器)↑Custom ClassLoader(自定义类加载器)Class<?Class<?// false不同插件类互相隔离,互不干扰。双亲委派模型是 Java 类加载机制的基础设计理念,保护了核心类的安全性与一致性。但在现代开发中,打破这个模型已经成为热部署、插件化架构的必要手段。

2025-05-10 20:50:17 124

原创 JVM 内存结构全解析

JVM 内存结构并不只是图上的几个区块那么简单,它们之间密切配合,支撑起 Java 应用的稳定运行。只有真正理解各个区域的用途与原理,才能在调优、排障、架构设计中做到有的放矢。下一篇预告:《类加载机制详解:双亲委派模型与打破它的方式》——从源码角度理解类是如何被加载和初始化的。

2025-05-05 11:42:10 917

原创 JVM运行机制全景图:从源码到执行的全过程

许多开发者写完 Java 代码之后,就交给编译器和运行时去“神奇”地执行了。但你有没有想过,一段.java文件是如何一步步变成可运行的程序?今天,我们就从全链路,揭开 JVM 运作的全过程。

2025-04-26 11:58:15 581

原创 记录一次项目中使用pdf预览过程以及遇到问题以及如何解决

项目中现有的pdf浏览解析不能正确解析展示一些pdf文件,要么内容一直在加载中展示不出来,要么展示的格式很凌乱。

2025-04-19 14:10:22 1175

原创 JVM基础认知:JVM到底是什么?为什么它如此重要?

• JVM 是 Java 跨平台、高性能、安全性保障的核心引擎,理解它就掌握了 Java 应用性能优化和底层原理的关键。• 无论你是刚入门的 Java 初学者,还是资深架构师,对 JVM 的各个组成模块、运行机制、调优策略都应当有系统认知。• 在后续系列文章中,我们将深入探讨 JVM 内存模型、垃圾收集、JIT 优化与生产故障案例,助你成为真正的 Java 性能专家。

2025-04-19 13:07:56 638

原创 为什么你必须真正学好JVM?

JVM,决定了一个Java程序员的上限。

2025-04-13 14:02:43 43

原创 【deepseek】本地部署+webui访问

最近deepseek很火,但是官网的老是被限流使用,还有就是自己也想着玩一玩,于是准备在自己电脑跑一个。

2025-02-25 23:23:37 633

原创 Mac电脑修改hosts文件内容

mac电脑需要配置ip和域名的映射关系,通过域名访问内部系统。

2025-02-09 15:25:58 1795

原创 我的个人博客正式上线了!

博客

2024-12-22 20:05:02 641

原创 记录一次redisson看门狗代码

但是redission却又提供了lock这种未设置时间的锁,那么它是怎么做的呢,下面分析代码。接下来再看看门狗干啥了,如下图,会把上面的线程id缓存到map里面,并加入到队列里面。也就是说,如果加锁时不进行过期时间设置,默认是30s,设置了则时设置过期时间,过期时间是一定得有的,要不然程序挂了这个锁就释放不了了。如上图,传递过期是间是-1,那么再往下走继续看代码。大家都知道redisson实现了分布式锁。那么实现分布式锁需要哪些条件呢。当然也有取消看门狗的方法。下面时看门狗的续期代码。

2024-11-18 23:46:15 235

原创 给自己域名生成tls证书并在服务器进行配置

自己搭建的服务器,使用https访问时会报不安全,给人一种不靠谱的赶脚,于是乎,决定使用个免费的方式来配置个证书解决这个问题

2024-11-08 18:01:33 657 2

原创 ubuntu系统使用Linux版原生微信

既想用ubuntu操作系统,又同时想使用微信,但是ubuntu默认的应用商店是不支持安装微信的。

2024-10-18 11:01:23 745

原创 前缀树相关内容

前缀树通常用来保存字符串,它的节点和字符串的字符对应,而路径和字符串对应。如果只考虑英文字母,那么前缀树的每个节点有26个子节点。为了标注某些节点和字符串的最后一个字符对应,前缀树节点中通常需要一个布尔类型的字段。使用前缀树解决问题一般需要两步,第一步是创建前缀树,第二步是在前缀树中查找。

2024-08-30 14:28:14 665

原创 堆相关内容

堆可以分成最小堆和最大堆,在最大堆中最大值总是在堆顶,在最小堆最小值总是位于堆顶,因此在堆中只需要O(1)的时间就能得到最大值或最小值。堆经常用来解决数据集合中找出k个最大值或最小值相关的问题,通常用最大堆找出数据集合中的k个最小值,用最小堆找出数据集合中的k个最大值。

2024-08-29 14:12:27 229

原创 树的相关内容

熟悉二叉树的三中遍历方式,前、中、后序遍历深度搜索算法。

2024-08-28 20:09:25 443

原创 队列相关内容

如果数据符合先入先出的条件,则可以考虑使用队列的数据结构来解决,队列可以用来实现二叉树的广度优先搜索。

2024-08-27 16:30:41 260

原创 栈相关内容

栈的插入、删除操作都发生在栈的顶部,在栈中插入、删除数据的顺序为“后入先出”,即最后添加的数据最先被删除。Java中类型Stack实现了该功能。

2024-08-26 20:03:50 265

原创 哈希表相关内容

哈希表的时间效率很高,添加、删除、查找操作的时间复杂度都是O(1)。哈希表一般由链表的数组构成,HashMap在链表长度大于等于7时会将链表转成树结构。

2024-08-23 11:24:40 427

原创 链表相关内容

由于链表再内存中地址不连续,所以访问时需要从头开始逐个遍历。可以哨兵节点简化代码判断逻辑。合理利用双指针前后移动和双指针快慢指针能解决一些问题。双向链表和循环链表操作时需要特别注意,避免产生死循环。

2024-08-22 17:56:09 395

原创 字符串相关内容

熟练使用字符串的函数,双指针思想,字符的性质,能很好解决一些问题。

2024-08-21 17:53:51 342

原创 数组相关内容

由于数组中的元素在内存中的地址是连续的,因此只需要使用O(1)的时间就可以算计访问数组中的任意元素双指针是解决与数组相关问题的一种常用技术。如果数组是排序的,那么应用双指针的相向就能够用O(n)的时间在数组中找出两个和为给定值的数字如果数组中的所有数字都是整数,那么应用双指针技术就可以用O(1)的辅助空间找出和为给定值的子数组。如果关于子数组之和的问题没有限定数组中的所有数字都是正数,那么可以尝试从第一各数字开始累加数组中前面若干数字之和,两个累加的和的差值对应一个子数组的数字之和。

2024-08-20 18:25:43 278

原创 整数相关内容

【代码】整数相关内容。

2024-08-19 15:45:08 244

原创 【idea】gradle多模块构建项目内存溢出终止问题解决

idea构建多模块项目,构建报错。

2024-06-17 21:35:02 680

原创 K8S 证书过期不能使用kubectl之后,kubeadm 重新生成证书

【代码】K8S 证书过期不能使用kubectl之后,kubeadm 重新生成证书。

2024-05-30 11:18:43 583 1

原创 Cannot query the value of property ‘javaLauncher‘ because it has no value available.

【代码】Cannot query the value of property ‘javaLauncher‘ because it has no value available.

2023-06-21 10:31:45 1168

原创 idea使用native-image打包springboot项目

native-image 是一个用于将 Java 程序编译为本地可执行文件的工具。它是 GraalVM 的一部分,GraalVM 是一个高性能的通用虚拟机,支持多种语言。

2023-06-03 19:38:50 3365

原创 k8s新增节点

查询加入节点凭证,如果什么都 没返回说明当前没有可用token,token有效期24小时已过,则进行第三步。,则会返回一串命令,这传命令在新增的node节点上执行即可。1、新增的节点先安装上k8s所需要的软件。3、获取执行加入node节点命令。2、在master节点执行。

2023-06-02 19:45:25 1209

原创 linux sudo su - 免密配置

【代码】linux sudo su - 免密配置。

2023-04-02 13:56:12 452

原创 ubuntu系统将第二块磁盘挂载到文件目录上

将/dev/mapper/datavg-datalv /data ext4 defaults 0 0 添加进去。

2023-03-31 14:06:01 1259

原创 ubuntu系统将磁盘剩余容量扩到文件目录上

Free PE 还有58G。

2023-03-31 11:25:44 1146

原创 解决 k8s 集群1.26.3使用nfs时nfs provider selfLink was empty

4、尝试修改vim /etc/kubernetes/manifests/kube-apiserver.yaml 文件,添加- --feature-gates=RemoveSelfLink=false后,集群不能正常访问。3、修改自己的storageclass文件,将驱动修改成helm安装的驱动接口。3、使用storageclass创建pvc时,一直pending。1、还原kube-apiserver.yaml文件。1、使用1.26.3版本的集群,2、使用helm安装nfs驱动。2、搭建nfs服务器,

2023-03-30 18:26:09 1276

原创 k8s删除Terminating 的命名空间等资源

在k8s中执行删除命名空间后,命名空间没有被删除而是处于Terminating状态,

2022-10-22 10:20:19 683

原创 k8s中安装traefix并配置dashboard访问权限

k8s中安装traefix

2022-07-17 00:08:57 1204

原创 k8s中安装kubesphere、kuboard、rancher记录

安装k8s管理平台

2022-07-16 15:36:48 2621

原创 navicate查询表结构创建语句

navicat使用

2022-06-08 10:28:44 651 1

原创 idea运行java程序报:java: 错误: 不支持发行版本 5解决

进入设置修改编译字节码版本进入项目结构修改语言类别改为你自己对应的jdk版本

2022-05-18 12:43:51 383

docker镜像node:18.15-alpine

node:18.15-alpine镜像的tar文件 使用步骤(确保本地环境已经安装docker) 1、将tar包下载到本地 2、打开终端 3、进入到上述tar包的下载路径 4、运行docker load node-18.15-alpine.tar

2024-08-17

kubeadm.sh

直接使用sh kubeadm.sh即可下载安装k8s集群所需要的镜像, k8s.gcr.io/kube-apiserver:v1.14.0 k8s.gcr.io/kube-controller-manager:v1.14.0 k8s.gcr.io/kube-scheduler:v1.14.0 k8s.gcr.io/kube-proxy:v1.14.0 k8s.gcr.io/pause:3.1 k8s.gcr.io/etcd:3.3.10 k8s.gcr.io/coredns:1.3.1

2020-08-05

aspose-words-18.6-jdk16.rar

java将docx格式转为pdf源码加aspose-words-18.6-jdk16.jar,直接main方法调用即可

2019-07-19

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除