thumbnail
一文了解JAVA锁机制
乐观锁和悲观锁 乐观和悲观的定义是对于数据冲突的态度,乐观锁乐观地认为并发不会造成数据冲突,悲观锁悲观的认为并发一定会造成数据冲突。 乐观锁 乐观地认为并发访问不会造成数据冲突,只在更新时检查是否有冲突。乐观锁和CAS的关系可以用“乐观锁是一种思想,CAS是一种具体的实现”来理解。 当使用CAS操作修改数据时,如果版本号不匹配或者其他线程已经修改了…
一文了解VueX
定义  vuex官方解释 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 个人理解: vuex就是一个vue内部的一个容器,他定义了要存储哪些数据,给出这些数据的操作方法,供其他的组件调用,很像一个类。 什么时候使用VueX Vue…
thumbnail
一文了解消息队列
定义 消息队列(MQ)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。 个人理解就像一个存储消息的数据库,类似图床这样,为了解决平台主体的负载问题,将压力分担到其它系统 消息队列的组成 Broker作为server提供核心服务 Producer消息生产者,业务的发起方,负责生产消息传输给broker C…
thumbnail
JAVA中的四种引用
概述 在 Java 中,对象的引用类型对于理解如何引用对象以及对象如何与垃圾回收器(GC)一起工作非常重要。Java 提供了四种不同的引用类型:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)。下面,我们将探讨每种类型的特点,并通…
thumbnail
一文理解JVM直接内存
概述 直接内存(Direct Memory)是在Java中使用较为底层的内存管理方式,它通过Java的NIO包中的ByteBuffer类来实现,让Java能够在堆外分配内存。这种方式通常用于需要大量、频繁的IO操作的场景,因为它可以减少在Java堆和本地堆之间复制数据的次数,从而提高性能。以下是关于直接内存的一些分析和代码示例。 不用直接内存 使用…
thumbnail
一文理解JVM双亲委派机制
什么是双亲委派机制 双亲委派机制(Parent Delegation Mechanism)是Java中的一种类加载机制。在Java中,类加载器负责加载类的字节码并创建对应的Class对象。双亲委派机制是指当一个类加载器收到类加载请求时,它会先将该请求委派给它的父类加载器去尝试加载。只有当父类加载器无法加载该类时,子类加载器才会尝试加载。 这种机制的…
thumbnail
一文理解java类加载过程
初步了解 Java作为一门成熟的面向对象编程语言,在底层架构中融入了一个复杂而精妙的类加载机制。类加载器(ClassLoader)是Java虚拟机(JVM)的一部分,负责动态加载类文件到内存中。Java中类加载器从高到低主要分三种启动类加载器、扩展类加载器、应用程序类加载器 加载机制概述 Java类加载主要分为三个阶段:加载(Loading)、链接…
thumbnail
jvm垃圾回收策略
垃圾判定 垃圾判定是指在编程中确定哪些内存中的对象是“垃圾”,即不再被应用程序使用的对象,因此可以被垃圾回收器回收的过程。 在Java中,垃圾回收(Garbage Collection, GC)主要采用两种基本方法:引用计数法和可达性分析。下面分别对这两种方法进行说明: 引用计数算法是一种最直观的垃圾收集技术。其基本思想是给每个对象分配一个引用计数…
thumbnail
一文深入了解JVM
JVM内存结构 堆 堆的特点 线程共享,一块最大的内存存储区 通过new创建的对象,数组和字符常量池都在堆中 需要考虑线程安全问题,有垃圾回收机制 堆内存分配 堆内存有新生代和老年代之分 新生代:新生代由伊甸园(Eden)和两个幸存者区(suervior space)组成伊甸园用来存放新创建的对象幸存者区是通过 from和to区不断交换来运行的,一…
thumbnail
Mysql底层架构
Mysql体系架构,存储引擎,索引结构 MySQL体系架构 网络接入层:通过一些数据库操作语言与mysql服务器建立连接,这里将其称之为网络接入层 服务层: 系统管理工具(备份与恢复,安全,复制等) 连接池(连接管理,授权认证,安全防护,并会存储一些连接缓存) sql接口(mysql是DBMS(数据库管理系统)接收sql命令) parser解析器(…