摘要:
1、虚拟机栈概述 虚拟机栈出现的背景 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的【如果设计成基于寄存器的,耦合度高,性能会有所提升,因为可以对具体的CPU架构进行优化,但是跨平台性大大降低】。 优点是跨平台,指令集小,编译器容易实现,缺点 阅读全文
摘要:
1、PC Register介绍 JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装在到寄存器才能够运行。 这里,并非是广义上所指的物理寄存器,或许将其翻译为PC计数器(或指令计数器 阅读全文
摘要:
从第三章到第十章、甚至是第十二章都是运行时数据区的内容。 1、概述 前言 本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段。 当我们通过前面的:类的加载 --> 验证 --> 准备 --> 解析 --> 初始化,这几个阶段完成后,就会用到执行引擎对我们的类进行使用,此时执行引擎 阅读全文
摘要:
1. 内存结构概述 简图 详细图-英文版 详细图-中文版 注意:方法区只有HotSpot虚拟机有,J9,JRockit都没有 如果自己想手写一个Java虚拟机的话,主要考虑哪些结构呢? 类加载器 执行引擎 2. 类加载器与类的加载过程 类加载子系统 类加载器子系统负责从文件系统或者网络中加载Clas 阅读全文
摘要:
一、JVM与Java体系结构 1.1 前言 你是否也遇到过这些问题? 运行着的线上系统突然卡死,系统无法访问,甚至直接OOM! 想解决线上JVM GC问题,但却无从下手。 新项目上线,对各种JVM参数设置一脸茫然,直接默认吧然后就JJ了。 每次面试之前都要重新背一遍JVM的一些原理概念性的东西,然而 阅读全文
摘要:
半小时漫画中国史 我绝无意否定我们的历史课教育,他普适、严谨,对于大众基础教育来说,已经做的足够好了,我只是在想,能不能做到更好?如果跳出课堂,历史会变成什么样?还会这么高冷吗? 我一直任务,一个人能把一门知识学习到什么程度,取决于他到底有多感兴趣,除此之外的因素都是扯淡。 知乎 “那些哭着,闹着, 阅读全文
摘要:
一、ElasticSearch介绍 1.1 引言 在海量数据中执行搜索功能时,如果使用MySQL,效率太低。 如果关键字输入的不准确,一样可以搜索到想要的数据。 将搜索关键字,以红色的字体展示。 当在京东搜索手机壳的时候,可以搜索到千万级,上亿级的数量。如果用MySQL搜索,则SQL语句是selec 阅读全文
摘要:
一、Nginx介绍 1.1 引言 为什么要学习Nginx 代理问题:客户端到底要将请求发送给哪台服务器。 负载均衡问题:如果所有客户端的请求都发送给了服务器1,那么服务器2将没有任何意义。 资源优化:客户端发送的请求可能是申请动态资源的,也有申请静态资源,但是都是去Tomcat中获取的 服务器搭建集 阅读全文
摘要:
一、RabbitMQ介绍 1.1 引言 如果客户端要保存客户的数据,就需要通过客户模块去操作。但是我们想保存后在客户模块调用搜索模块,又想调用缓存模块缓存起来,还想调用其它模块。其实我们的核心业务就是用客户模块去存数据,其它的也是必做的,但是不是我们的核心需求。这时候会有什么问题? 模块之间的耦合度 阅读全文
摘要:
一、引言 1.1 原生web开发中存在哪些问题? 传统Web开发存在硬编码所造成的过度程序耦合(例如:Service中作为属性Dao对象)。 部分Java EE API较为复杂,使用效率低(例如:JDBC开发步骤)。此时Spring会对JDBC封装,简化持久层开发。但其实这里又更专业的框架MyBat 阅读全文