- 博客(175)
- 收藏
- 关注
原创 深入理解 Java 虚拟机(JVM)从入门到精通
这篇博客将全面介绍Java虚拟机(JVM)的核心概念,从运行时数据区域到性能优化策略,内容涵盖丰富。首先将深入探讨JVM的运行时数据区域,包括堆、栈、方法区等,为读者提供全面的理解。其次,我们将分享优化Java应用性能的方法,讨论JVM调优和垃圾回收策略,帮助开发人员在实践中提高代码效率。
2023-12-06 22:33:59 1203
原创 java中list、map、array、实体类、字符串之间的相互转换,以及java8 stream流使用
java中list、map、array、实体类、字符串之间的相互转换,以及java8 stream使用,json字符串转换
2021-07-19 20:54:17 7861 8
原创 git常用命令
IDEA中如何应用git命令,git命令大全,git是什么?git命令如何关联仓库?git命令如何提交代码?git命令如何合并代码?git命令如何撤回提交
2021-03-29 09:35:42 254
原创 Synchronized和ReenTrantLock锁的区别
什么是synchronized锁、什么是reentrantLock锁,他们的区别是什么
2024-04-16 14:44:11 736
原创 Redis 常见面试题
Redis常见面试题?线程模型、数据类型、Redis事务、雪崩、击穿、穿透、lua脚本、删除策略、内存淘汰机制、持久化机制
2024-04-07 17:43:00 741
原创 深入了解Spring循环依赖和三级缓存机制
在Spring框架中,循环依赖是指多个bean之间相互依赖,可能会导致在实例化过程中的死锁或无限递归。为了解决这个问题,Spring引入了三级缓存机制,用于存储在创建单例bean实例的过程中的相关数据。本篇博客将深入探讨Spring循环依赖和三级缓存机制,包括循环依赖的生成流程和每层缓存的作用。
2024-03-29 21:42:19 1020
原创 mysql 常见问题
count(*) 和 count(1) 和 count(字段)有什么区别,sum、avg是否会统计为null的列,union和union all的区别。order by 和limit 一起使用需要注意什么问题
2024-03-18 19:07:12 683 1
原创 详解Mysql中redo log、undo log、bin log
mysql中redolog、undolog、binlog分别的作用,以及二阶段提交的含义
2024-03-09 17:08:21 527
原创 MySQL索引下推(Index Condition Pushdown, ICP)优化深入解析
数据库性能优化是现代软件开发中不可或缺的一环。在MySQL中,索引的使用往往是提高查询性能的关键。自5.6版本起,MySQL引入了一个强大的优化器功能,名为索引下推(Index Condition Pushdown, 简称ICP)。通过ICP,我们可以显著提升部分查询的效率,尤其是在使用索引过滤数据时。本文将详细介绍ICP的原理、作用以及应用场景。
2023-12-27 15:42:43 1147
原创 执行计划EXPLAIN详解
在开发和管理数据库时,优化查询性能是至关重要的。MySQL 提供了一个强大的工具,即 EXPLAIN 关键字,它可以帮助你分析查询语句的执行计划,以便更好地理解和优化查询性能。本文将介绍 EXPLAIN 关键字的基本用法、输出的含义以及如何根据执行计划进行查询性能优化。
2023-12-18 14:05:14 1032
原创 MySQL InnoDB存储引擎中的索引结构解析
在数据库系统中,索引是优化查询性能的关键技术之一。为了理解为什么MySQL的InnoDB存储引擎使用B+树而非其他数据结构,我们需要首先掌握各种数据结构的基本特性。
2023-12-14 16:12:56 955 2
原创 Java 中的四种引用类型和它们的使用场景
在 Java 中,对象的引用类型对于理解如何引用对象以及对象如何与垃圾回收器(GC)一起工作非常重要。Java 提供了四种不同的引用类型:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)。下面,我们将探讨每种类型的特点,并通过代码示例演示它们的使用。
2023-12-06 16:15:11 473
原创 直接内存(Direct Memory)
直接内存(Direct Memory)是在Java中使用较为底层的内存管理方式,它通过Java的`NIO包中的ByteBuffer类`来实现,让Java能够在堆外分配内存。这种方式通常用于需要大量、频繁的IO操作的场景,因为它可以减少在Java堆和本地堆之间复制数据的次数,从而提高性能。以下是关于直接内存的一些分析和代码示例。
2023-12-06 15:56:24 1063
原创 深入理解Java类加载过程
Java作为一门成熟的面向对象编程语言,在底层架构中融入了一个复杂而精妙的类加载机制。类加载器(ClassLoader)是Java虚拟机(JVM)的一部分,负责动态加载类文件到内存中。了解类加载过程对于优化程序和深入理解Java内部机制至关重要。本文将逐步深入探讨Java类加载过程中常量和静态变量的复制与初始化。
2023-12-06 15:06:37 862
原创 深入理解Java中的逃逸分析
逃逸分析是一种编译器优化技术,用于确定对象的作用域和生命周期。其主要特点包括:对象作用域分析、栈上分配、同步省略和标量替换。现在将详细阐述这些特点,并以Java代码为例说明。
2023-12-06 13:21:51 340
原创 深入理解ConcurrentHashMap源码解析
1.7采用segment加reentrantLock实现,而1.8采用CAS和synchronized以及volatile实现。
2023-12-06 01:18:18 703
原创 深入理解CopyOnWriteArrayList源码分析
CopyOnWriteArrayList 是线程安全的ArrayList集合,适用于读多写少场景,不适合大量修改的场景,因为每次增删改都会copy一份数组出来
2023-12-05 23:52:27 762
原创 深入理解JVM中的即时编译器(JIT)
JIT编译器在`运行时`编译字节码为`本地机器码`,从而提高程序的性能。JIT采用了多种优化技术:方法内联、逃逸分析、循环优化、死代码消除 等。
2023-12-05 12:07:54 970
原创 【泛型】JAVA基础篇(三)
泛型为Java添加了类型安全性和重用性,使得代码更加灵活和可维护。这篇博客将介绍泛型的基础知识、类型擦除、通配符和泛型方法。
2023-11-29 00:35:47 965
原创 Java代码的编译与执行过程
Java源代码通过编译器(javac)编译为字节码文件(.class)。idea中的 build 和 maven package等指令都可以编译为 .class。
2023-11-28 23:05:37 594
原创 深入理解Java AQS:从原理到源码分析
AQS是用于`实现锁和同步器`的框架。提供了`双向链表的node节点等待队列`,`可实现公平和非公平性`。`提供了state变量`,在不同的同步器中,代表了不同的含义
2023-11-22 00:13:53 1047
原创 什么是内核态与用户态
在操作系统的架构中,为了提供一个稳定安全的运行环境,将系统的运行模式分为内核态(Kernel Mode)和用户态(User Mode)。内核态拥有执行最高权限的代码,能够访问所有硬件资源;用户态则是普通权限,只能执行限制范围内的操作,并通过系统调用与内核态交云。
2023-11-21 23:25:55 85
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人