第06章_堆 6.1. 堆(Heap)的核心概述在 JVM 中,堆是用于存储对象实例和数组的区域。 堆针对一个JVM进程来说是唯一的,也就是一个进程只有一个JVM,进程中的多个线程共享同一堆空间的。 ==一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。== ==Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM 2022-05-14 JVM #Java #JVM
第05章_本地方法栈 5.1. 什么是本地方法?一个Native Method是一个Java调用非Java代码的接囗。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern “c” 告知c++编译器去调用一个c的函数。 在定义一个native method时,并不提供实现体(有些像定 2022-05-13 JVM #Java #JVM
第04章_虚拟机栈 4.1.1. 虚拟机栈出现的背景由于跨平台性的设计,**Java的指令都是根据栈来设计的**。不同平台CPU架构不同,所以不能设计为基于寄存器的。 ==优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。== 4.1.2. 初步印象有不少Java开发人员一提到Java内存结构,就会非常粗粒度地将JVM中的内存区理解为仅有Ja 2022-05-12 JVM #Java #JVM
第03章_运行时数据区 3.1. 运行时数据区3.1.1. 概述本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段 内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。 我们通过磁盘或者网络IO得到的数据,都需要先加载到内存中,然后CPU从内存中获取数据进行读取,也就是说内存充当了CPU和磁盘之间的桥梁 JVM内存布局规定了Java在运行过程中内存申请、分配 2022-05-12 JVM #Java #JVM
第02章_类加载子系统 2.1类加载子系统的作用类加载器子系统负责从文件系统或者网络中加载Class文件,并将其转换为 Java 虚拟机可以处理的二进制字节流。class文件在文件开头有特定的文件标识。 2.2类加载子系统的结构 ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。 加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存 2022-05-11 JVM #Java #JVM
第01章_JVM与Java体系结构 1.1. 前言作为Java工程师的你曾被伤害过吗?你是否也遇到过这些问题? 运行着的线上系统突然卡死,系统无法访问,甚至直接OOM 想解决线上JVM GC问题,但却无从下手 新项目上线,对各种JVM参数设置一脸茫然,直接默认吧然后就JJ了 每次面试之前都要重新背一遍JVM的一些原理概念性的东西,然而面试官却经常问你在实际项目中如何调优JVM参数,如何解决GC、OOM等问题,一脸懵逼 2022-05-10 JVM #Java #JVM
数据结构与算法 1.链表1.1单向链表1.1.1单向链表概述 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素+ 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。 链表有两个比较重要的部分组成: 指针指向下一个节点的地址,(即内存位置的直接地址) 节点链表中的组成部分,对于单链表,一个节 2022-03-22 数据结构与算法 #数据结构与算法
第19章_数据库备份与恢复 在任何数据库环境中,总会有不确定的意外情况发生,比如例外的停电、计算机系统中的各种软硬件故障、人为破坏、管理员误操作等是不可避免的,这些情况可能会导致数据的丢失、服务 器瘫痪等严重的后果。存在多个服务器时,会出现主从服务器之间的数据同步问题。 为了有效防止数据丢失,并将损失降到最低,应定期对MySQL数据库服务器做备份。如果数据库中的数据丢失或者出现错误,可以使用备份的数据进行恢复。主从服务器之间 2021-05-06 MySQL #MySQL #数据库
第18章_主从复制 1. 主从复制概述1.1 如何提升数据库并发能力在实际工作中,我们常常将Redis作为缓存与MySQL配合来使用,当有请求的时候,首先会从缓存中进行查找,如果存在就直接取出。如果不存在再访问数据库,这样就提升了读取的效率,也减少了对后端数据库的访问压力。Redis的缓存架构是高并发架构中非常重要的一环。 此外,一般应用对数据库而言都是“ 读多写少 ”,也就说对数据库读取数据的压力比较大,有一个思 2021-05-01 MySQL #MySQL #数据库
第17章_其他数据库日志 我们在讲解数据库事务时,讲过两种日志:重做日志、回滚日志。 对于线上数据库应用系统,突然遭遇数据库宕机怎么办?在这种情况下,定位宕机的原因就非常关键。我们可以查看数据库的错误日志。因为日志中记录了数据库运行中的诊断信息,包括了错误、警告和注释等信息。比如:从日志中发现某个连接中的SQL操作发生了死循环,导致内存不足,被系统强行终止了。明确了原因,处理起来也就轻松了,系统很快就恢复了运行。 除了发现 2021-04-30 MySQL #MySQL #数据库