摘要:
概述: 上一篇文章,介绍了java虚拟机的运行时区域,Java虚拟机根据不同的分工,把内存划分为各个不同的区域。在java程序中,最小的运行单元一般都是创建一个对象,然后调用对象的某个 方法。通过上一篇文章我们知道调用某个方法是通过虚拟机栈的栈帧并通过执行引擎来实现的,但是实际上一个方法的执行前提是 阅读全文
摘要:
代理模式的定义: 代理模式指为其他对象提供一种代理,以控制对这个对象的访问,属于结构型设计模式。 在某种情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式的应用场景: 生活中的租房中介、婚姻介绍、经纪人、快递、事物代理、日志监听等,都是代 阅读全文
摘要:
1. 安装docker Docker 要求 CentOS 系统的内核版本高于 3.10 ,首先验证你的CentOS 版本是否支持 Docker 。 通过 uname -r 命令查看你当前的内核版本 使用 yum 安装docker yum -y install docker 启动 Docker 服务 阅读全文
摘要:
Mysql为什么会有日志系统? 我们知道,mysql的数据是存储在磁盘的,每次更新数据需要先进入磁盘,然后在磁盘中找到需要更新的数据,这样会产生IO成本以及查找成本,这样会大大降低Mysql的性能。 所以mysql就采用先存入日志文件,当系统空闲的时候,mysql再通过日志文件将数据存入磁盘。当然日 阅读全文
摘要:
mysql的整体架构图: 大体来说Mysql可以分为Server层和存储引擎层两部分。 Server层包括连接器、查询缓存、分析器、优化器、执行器等。 存储引擎负责数据的存储和提取,其架构是插件式的。支持InnoDB、MylSAM、Memeory等多个存储引擎。 连接器: 负责和客户端建立连接,通过 阅读全文
摘要:
redis是什么? C写的开源基于内存的高性能非关系型键值对数据库。底层采取epoll读写速度非常快,大多用于缓存,也提供了事务、持久化、分布式锁、消息队列、集群以及多种数据类型的功能。 什么时候需要用到redis? 首先我们明确几个常识问题:磁盘寻址是ms级别,带宽为G/M级别。而内存的寻址是n/ 阅读全文
摘要:
redis简介: Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bi 阅读全文
摘要:
tengine简介: Tengine所基于开发的Nginx的意思是Engine-X,Tengine在淘宝开发,所以我们把Engine-X中的X替换成Taobao。Tengine即Taobao-Engine,再进一步简写,就是Tengine。它可以念成tee-engine,或者ten-gine。它在N 阅读全文
摘要:
ArrayList的实现: 话不多说,直接看源码: 这句话是这样描述的,它是List的实现类,并且是一个可变的数组。实现了List所有的操作,允许存放所有元素,包括空。除了实现List接口外,这个类还提供了操作数组大小的方法,意思集合的长度是可以改变的。最后还提到了这个类和Vector类似,只是不是 阅读全文
摘要:
java集合概览: 我们先通过一张图来了解java集合。 从上图可以看到,java集合主要分为两大类,分别是Collection和Map。上图只列举了常用的几个实现类,如果要看所有的实现类,可以查看JDK文档。 Collection的所有子接口和实现类如下: Map的所有子接口和实现类如下: 可以看 阅读全文
摘要:
概述: 大家都知道java相较于c、c++而言最大的优点就是JVM会帮助程序员去回收垃圾,实现对内存的自动化管理。那为什么程序员还需要去了解垃圾回收和内存分配?答案很简单,当需要排查各种内存溢内存泄漏等问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就必须对这些“自动化”的技术实施必要的监控和 阅读全文
摘要:
概述: 上一篇文章,介绍了虚拟机类加载的过程,那么类加载好之后,虚拟机下一步该干什么呢。我们知道java是面向对象的编程语言,所以对象可以说是java'的灵魂,这篇文章我们就来介绍 虚拟机是如何创建对象、对象内存分配以及对象是如何使用的(访问定位)。由于各个虚拟机的实现不尽相同,所以这里我们以最常用 阅读全文