自定义博客皮肤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)
  • 收藏
  • 关注

原创 分布式第二章 单机存储系统

单机存储引擎就是哈希表,B树等在磁盘上的实现。单机存储系统是单机存储引擎的一种封装,对外提供文件、键值,表格或关系模型. 2.1.2 IO总线 存储系统瓶颈一般在于IO。 2.1.3 网络拓扑 传统分为三层,接入层–>汇聚层–>核心层。该结构的问题在于可能有很多接入层的交换机接到汇聚层,很对汇聚层交换机接到核心层。 接入层交换机包含48个1GB端口以及4个10GB上行端口

2017-12-08 12:00:42 544

原创 分布式系统第一章

1.2分布式存储系统分类 分布式存储的数据类型 - 非结构化数据:包括所有办公文档、图片、音频、视频等。 - 结构化数据:一般存储于关系数据库中,二维关系表结构来表示。其模式(Schema,包括属性、数据类型以及数据之间的联系)和内容是分开的,模式需要预先定义。 - 半结构化数据:如HTML。其模式和内容是混在一起的。不需要预先定义数据的模式结构。不同的分布式存储系统适用于存储不同数据

2017-12-07 15:05:53 333

原创 虚拟机7.4 类加载器 及 9.2.2OSGi

7.4.1 类与类加载器 比较两个类是否相等的两个条件:同一个类加载器加载、两个类来源于同一个class文件。public class ClassLoaderTest { public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessExc

2017-11-21 16:06:06 188

原创 第7章 虚拟机类加载机制7.1~7.3

7.1概述 虚拟机把类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 类加载、连接和初始化是在类的运行期间完成,虽然会增加一些开销,但是提高了灵活性。例如:编写一个面向接口的应用程序,可以等到运行时再指定其实际的实现类。或类的增强,都是使用了在运行期类加载的特性。 7.2类加载的时机

2017-11-14 20:01:03 201

原创 虚拟机 第六章 类文件结构

6.2 无关性的基石 实现语言无关性的基础是虚拟机和字节码存储格式。各种语言都可以通过对应编译器转成class文件在虚拟机运行。 6.3class类文件的结构 class类文件对应唯一一个类或接口的定义信息,类或接口并不定都定义在文件里(也可以通过类加载器直接生成类或接口) class文件是以8字节为基础单位的二进制流 ,各个数据项目严格按照顺序紧凑排列在class文件中。当数据项超过8位字

2017-11-09 21:48:03 151

原创 虚拟机3.6 内存分配与回收策略

对象主要分配在Eden区,如启用TLAB,将优先在TLAB分配。 3.6.1 对象优先在Eden分配 如果Eden区没有足够空间,则发起一次Minor GC. -XX:+PrintGCDetails 可设置打印手机日志参数。

2017-11-09 17:06:35 205

原创 虚拟机3.5 垃圾收集器

HotSpot虚拟机的垃圾收集器 3.5.1 Serial收集器 特征‘Stop the World’,GC时需停止其他所有线程,且用户不知情,体验不好,简单高效,没有线程交互的开销,在Client模式下的jvm收集几十兆到一两百兆的新生代停顿时间一般在100ms以内,单个CPU下效果可以。 3.5.2ParNew收集器 Serial收集器的多线程版本。 是Server模式下首选的新生代

2017-11-09 16:37:38 170

原创 虚拟机3.4 HotSpot算法实现

HotSpot算法实现

2017-11-09 11:58:41 211

原创 虚拟机3.3垃圾收集算法

3.3.1 标记-清除算法 先标记、再清除。缺点是标记和清除的效率不高,容易留下内存碎片,在分配较大对象时不得不再次进行GC。 3.3.2 复制算法 将内存两等分,每次使用其中一半,在GC前,将存活的对象从A复制到另一半B,然后将A全都清空。不会有碎片,但是使用率低。 用这种算法可以回收新生代,新生代98%‘朝生夕死’,将内存分为三块,第一块80%空间存放新生代,第二块10%空间存放Surv

2017-11-08 17:43:54 247

原创 虚拟机垃圾收集器与内存分配策略3.2

如何确定对象是否存活 1、通过计数器确定 2、通过GC Roots看是否可达 可以作为GC Roots的对象有: ·虚拟机栈中引用的对象 ·方法区中类静态属性引用的对象,常量引用的对象 ·本地方法栈JNI引用的对象 3.2.3再谈引用 有一些‘鸡肋’对象,在内存充足时保留,在内存不足时回收 强引用strong:普通的new Object( ) 软引用soft :SoftRef

2017-11-08 17:21:35 170

原创 Java虚拟机第二章2.4 实战:OutOfMemoryError异常

目的: ①验证各个运行时区域存储的内容、 ②内存溢出异常时,可根据异常信息判断异常区域,什么代码可能导致该异常以及解决方法 2.4.1 Java堆溢出 Java堆存储创建的对象实例,只要不断创建对象,并且保证GC Roots到对象可达,不让对象被GC,到达足够数量后,发生内存溢出异常。 堆的最小值参数 -Xms 最大值参数-Xmx设置成一样,即可避免堆自动扩展, -XX:+HeapDu

2017-11-07 21:15:20 157

原创 Java虚拟机第二章2.3 学习笔记

一、对象的创建 a、类加载检查 虚拟机接收到‘new’指令后,会先去常量池找这个类的符号引用,并确定这个类是否完成类的加载、解析、初始化。如果没有,则完成类的加载。 b、分配内存 在Java堆中分配内存(指针碰撞和空闲列表两种方式分配) 指针碰撞:指在方法堆中被使用内存在一起,空闲内存在另一处,即内存规整。中间有指针将其分开。 空闲列表:方法堆中已使用内存和空闲内存交错分布,即内存不规整

2017-11-07 18:02:01 196

原创 Java虚拟机第二章2.2 学习笔记

Java运行时数据区 1、程序计数器:是一小块内存空间,是当前线程所执行的字节码的行号指示器(每个线程都有一个)。因为Java多线程中,线程轮流切换并分配处理器执行时间,实际上一个处理器在一个时间点只能执行一条指令。所以当线程切换时,为了使程序能继续恢复到正确的执行位置,就需要程序计数器告诉我们当前程序执行到哪里了。 2、Java虚拟机栈 是Java方法执行的内存模型:每个方法在执行的同时会创

2017-11-07 17:27:35 206

空空如也

空空如也

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

TA关注的人

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