摘要: 一、虚拟机类加载机制 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 二、类加载时机 类的生命周期:加载(Loading)、验证(Verification)、准备(Preparation)、解 阅读全文
posted @ 2019-12-01 18:38 king_wq_庆 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 一、 垃圾收集算法 1. 标记-清理算法 “标记-清除”(Mark-Sweep)算法:算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。 缺陷:1)效率问题,标记和清除两个过程的效率都不高; 2)标记清除之后会产生大量不连续的内存碎片。空间碎片太 阅读全文
posted @ 2019-12-01 00:18 king_wq_庆 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 1. 堆内存 堆大小 = 新生代 + 老年代。其中,堆的大小可以通过参数 –Xms、-Xmx 来指定。 默认的,新生代 ( Young ) 与老年代 ( Old ) 的比例的值为 1:2 ( 该值可以通过参数 –XX:NewRatio 来指定 ),即:新生代 ( Young ) = 1/3 的堆空间 阅读全文
posted @ 2019-11-30 23:09 king_wq_庆 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 一、 判断对象“已死” 1. 引用计数法:给对象中添加一个引用计数器,每当有一个地方引用他,计数器值+1;当引用失效,计数器 -1。计数器为0则表示,对象没有被使用。 缺陷:循环引用问题。 2. 可达性分析算法:通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过 阅读全文
posted @ 2019-11-30 22:35 king_wq_庆 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 1. 程序计数器(线程私有) 程序计数器,是一块较小的内存空间,是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时时通过改变程序计数器的值来选取下一条需要执行的字节码指令。 作用:分支、循环、异常处理、线程恢复等。 正在执行 java 方法的话,计数器记录的是虚拟机字节码 阅读全文
posted @ 2019-11-30 22:05 king_wq_庆 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 由于 Redis 是一个内存数据库,所谓内存数据库,就是将数据库中的内容保存在内存中,这与传统的MySQL,Oracle等关系型数据库直接将内容保存到硬盘中相比,内存数据库的读写效率比传统数据库要快的多(内存的读写效率远远大于硬盘的读写效率)。但是保存在内存中也随之带来了一个缺点,一旦断电或者宕机, 阅读全文
posted @ 2019-11-24 17:00 king_wq_庆 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 1. 对象的类型与编码 redis创建一个键值对时,至少创建两个对象,键对象、值对象。 redisObject: typedef struct redisObject{ //类型 unsigned type:4; //编码 unsigned encoding:4; //指向底层数据结构的指针 voi 阅读全文
posted @ 2019-11-20 00:05 king_wq_庆 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 索引是为了提高数据查询的效率,就像书的目录一样。 索引的常见模型 索引的出现是为了提高查询效率,但是实现索引的方式却有很多种。 1. 哈希表 哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的值即 key,就可以找到其对应的值即 Value。哈希的思路很简单,把值放在 阅读全文
posted @ 2019-11-19 23:50 king_wq_庆 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。 一、全局锁 全局锁就是对整个数据库实例加锁。MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其 阅读全文
posted @ 2019-11-19 15:19 king_wq_庆 阅读(387) 评论(0) 推荐(0) 编辑
摘要: ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性) 事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在 MySQL 中,事务支持是在引擎层实现的。MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务 阅读全文
posted @ 2019-11-19 00:16 king_wq_庆 阅读(231) 评论(0) 推荐(0) 编辑