自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (16)
  • 收藏
  • 关注

原创 Java虚拟机——Java内存模型

主内存与工作内存Java内存模型的主要目标是定义程序中各个变量的访问规则,这里的变量包括了实例字段、静态字段和构成数组对象的元素。Java内存模型规定了所有的变量都存储在主内存中。每条线程还有自己的工作内存,线程的工作内存中保存了该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作(读取、赋值等)都必须在工作内存中进行,而不能直接读写主内存中的变量。不同的线程之间也无法直接访问对方工作...

2020-02-21 21:04:13 90

原创 Java虚拟机——方法调用

方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程。解析所有方法调用中的目标方法在Class文件里面都是一个常量池中的符号引用,在类加载的解析阶段,会将其中一部分符号引用转化为直接引用。静态方法、私有方法、实例构造器和父类方法,这四类方法在类加载的时候就会把符号引用解析为该方法的直接引用,这些方法称为非虚方法...

2020-02-14 15:14:17 99

原创 Java虚拟机——运行时栈帧

栈帧是虚拟机运行时数据区中的虚拟机栈的栈元素,栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。局部变量表局部变量表用于存放方法参数和方法内部定义的局部变量。局部变量表的容量以变量槽Slot为最小单位,一个Slot可以存放一个32位以内的数据类型,对于64位的数据类型,虚拟机会以高位在前的方式为其分配两个连续的Slot空间。虚拟机通过索引定位的方式使用局部变量表,索引值...

2020-02-14 10:48:07 91

原创 Java虚拟机——双亲委派模型

虚拟机把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类,实现这个动作的代码模块被称为“类加载器”。比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义;这里的“相等”,包括代表类的Class对象的equals()方法、isAssignableFrom()方法、isInsta...

2020-02-13 16:06:11 87

原创 Java虚拟机——虚拟机类加载机制

虚拟机类加载机制,虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。Java类的生命周期:加载、验证、准备、解析、初始化、使用、卸载必须对类进行“初始化”的情况:a、使用new关键字实例化对象的时候、读取或设置一个类的静态字段的时候、调用一个类的静态方法的时候;b、使用java.lang.reflect包的方法对...

2020-02-12 16:40:29 56

原创 Java虚拟机——Class类文件结构

Class文件时一组以8位字节为基础单位的二进制流。Class文件格式采用一种类似于C语言结构体的伪结构体来存储,这种伪结构体重只有两种数据类型:无符号数和表。无符号数属于基本数据类型,以u1、u2、u4、u8来分别代表1个字节、2个字节、4个字节、8个字节的无符号数,无符号数可以用来描述数字、索引引用、数量值,或者按照UTF-8编码构成字符串值。表是由多个无符号数或其他表作为数据项构成的复...

2020-02-11 15:43:16 95

原创 Java虚拟机——Java虚拟机性能监控

jps:虚拟机进程状况工具可以列出正在运行的虚拟机进程,并显示虚拟机执行主类函数所在的名称,以及这些进程的本地虚拟机唯一ID(LVMID,Local Virtual Machine Identifier)。jstat:虚拟机统计信息监视工具用于监视虚拟机各种运行状态信息的命令行工具,可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。可选参数如下图所示 jin...

2020-02-11 11:00:54 180

原创 Java虚拟机——Java内存分配原则

Java内存分配原则对象优先分配在Eden区;大多数情况下,对象在新生代Eden区中分配,当Eden区没有足够的空间进行分配时,虚拟机将发起一次Minor GC。大对象直接进入老年代;大对象是指,需要大量连续内存空间的Java对象,最典型的大对象就是那种很长的字符串及数组。虚拟机提供了参数 -XX:PretenureSizeThreshold,大于这个设置值的对象直接在老年代中分配。...

2020-02-11 09:54:22 152

原创 Java虚拟机——垃圾收集器

1、Serail收集器单线程收集器,该收集器在进行垃圾收集时,必须暂停其他所有的工作线程,直到收集结束,该行为称之为"Stop the world"。主要用于Client模式下的虚拟机2、ParNew收集器Serial收集器的多线程版本。运行在Server模式下的虚拟机中首选的新生代收集器。除了Serial收集器,只有该收集器能与CMS收集器配合使用。默认开启的收集线程数与CPU数量相同。...

2020-02-02 18:12:08 73

原创 Java虚拟机——垃圾收集算法及优缺点

1、标记-清除算法该算法分为两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。缺点:a、效率问题,标记和清除过程的效率都不高;b、空间问题,标记清除后会产生大量不连续的内存碎片。2、复制算法该算法将内存按容量划分为大小相等的两块,每次只使用其中的一块,当这块的内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已经使用过的内存空间一次清理掉。缺点:...

2020-02-02 17:13:59 207

转载 Java虚拟机——判断对象是否存活算法及引用类型

判断对象是否存活的算法##10List item

2020-02-01 13:30:31 114

原创 Java虚拟机——对象访问

以下面这句代码为例Object obj = new Object()Object obj这部分反映到Java栈的本地变量表;new Object()这部分反映到Java堆,存储Object类型所有实例数据值的结构化内存;Java虚拟机实现的对象访问方式主要有两种:使用句柄和直接指针1、句柄访问方式,Java堆中将会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,...

2020-02-01 13:24:41 102

原创 Java虚拟机——运行时数据区

Java运行时数据区如下图所示1、程序计数器程序计数器可以看作是当前现成所执行的字节码的行号指示器。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)只会执行一条线程中的指令。因此,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间的计数器互不影响,独立存储,我...

2020-01-31 12:56:39 104

vue学习资料大全111111

vue学习资料大全111111

2021-04-13

vue资料及代码111111

vue资料及代码111111

2021-04-13

Kafka源码解析与实战

Kafka源码解析与实战,讲述了kafka的基本原理、架构及源码,并有实战项目

2019-03-26

深入理解spark:核心思想与源码分析 高清版本

版本清晰、全11章都有,是学习spark的优秀教材,强烈推荐

2019-01-01

Spark快速%数据处理

本书主要讲解了spark框架的大数据实时分析技术,并介绍了一些高阶应

2018-12-05

storm实时数据处理

本书介绍了实时处理框架storm,并讲解了一些高阶应用开发

2018-12-05

大数据Spark企业级实战

《大数据Spark企业级实战》这本书讲解了spark的企业级实战内容

2018-12-02

深入理解Spark核心思想与源码分析

《深入理解Spark核心思想与源码分析》讲解了spark基本内容及源码分析

2018-12-02

Spark快速数据处理

《Spark快速数据处理》这本书讲解了spark的基本内容及项目实践

2018-12-02

Spark大数据处理:技术、应用于性能优化

《Spark大数据处理:技术、应用于性能优化》这本书讲解了spark基础内容及优化方法

2018-12-02

hadoop实战中文版

介绍了hadoop的基本概念、体系结构、框架组成等内容,适合新手入门

2018-10-09

hadoop权威指南

全方位介绍了hadoop这一高性能海量数据处理和分析平台

2018-10-09

hadoop核心技术

主要对hadoop基本原理和优化配置进行了详细描述,最后通过具体案例进一步讲解

2018-10-09

深入理解hadoop

详细描述了hadoop生态圈组件,还涉及到分布式理论的基本知识

2018-10-09

MapReduce源码分析

主要讲解了MapReduce的源码,对并源码中常用的API进行分析讲解

2018-10-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除