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解析器(…
thumbnail
java面经整理
理解原理,建立链接 关于optional类 optional提供了一些方法去处理空值,来帮助我们简化业务代码中空值的判断 java自动内存管理机制 由于jvm的存在,使得java的内存分配,相比c++要容易得多, java的自动内存管理机制,内存管理,个人理解即对象的创建与回收, 在程序运行过程中,我们调用方法区的方法,将对象创建在java堆中, …
thumbnail
朝花夕拾
同步与异步的区别 同步的理解: 同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去; 同步就相当于是 当客户端发送请求给服务端,在等待服务端响应的请求时,客户端不做其他的事情。当服务端做完了才返回到客户端。这样的话客户端需要一直等待。用户使用起来会有不友好。 异步的…