摘要: dubbo集群容错模式 阅读全文
posted @ 2019-08-06 21:04 有一个小梦想 阅读(1314) 评论(0) 推荐(1) 编辑
摘要: 我使用的是阿里云的ECS服务,系统是CentOS7,安装mysql版本是5.7 第一步,通过 wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 命令获取安装包,然后用yum命令: 第二步,使 阅读全文
posted @ 2019-05-20 13:34 有一个小梦想 阅读(1576) 评论(0) 推荐(0) 编辑
摘要: 上篇文章中,我们了解了Java虚拟机垃圾回收的思路和策略,这篇文章我们将了解Java是如何实现高效的回收算法的。 我们需要了解,内存回收必须要保证“一致性”,意思就是在执行GC分析的时候,系统看起来要像是冻结在某一时间点上,不能出现在分析过程中,引用的情况还在发生变化,这样就无法进行分析,这是为什么 阅读全文
posted @ 2019-05-13 19:01 有一个小梦想 阅读(963) 评论(0) 推荐(0) 编辑
摘要: 上篇文章我们了解到哪些内存区域和哪些对象可以被回收,这篇文章我们就来了解一下具体的垃圾回收算法的思路,不讨论具体的实现。 一 最基础算法 标记-清除(Mark-Swap) 为什么说他是最基础的算法,因为这之后的算法思路都是基于此来进行。如同他的名字一样,回收分为两个步骤,标记和清除,但是这种方式有两 阅读全文
posted @ 2019-05-13 17:16 有一个小梦想 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章我们学到了对象在内存中是如何存储的已经是如何被访问的,这篇文章将介绍当内存空间不够时,虚拟机将怎样判定对象可不可以被回收已经哪些地方会发生回收。 垃圾回收主要(不是全部)发生在堆内存中,当一个对象没有存在的必要的时候,占着内存明显不行,所以Java内置的GC会对没有必要存在的内存区域进行回 阅读全文
posted @ 2019-05-13 14:16 有一个小梦想 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 一 对象的内存布局: 在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header),实例数据(Instance Data)和对齐填充(Padding)。 HotSpot的对象头包括两部分信息,一部分存储对象运转时自身信息,例如hashCode,GC分代年龄,锁状态标志,线 阅读全文
posted @ 2019-05-10 15:39 有一个小梦想 阅读(369) 评论(0) 推荐(0) 编辑
摘要: Java是一门面向对象的语言,在Java程序运行的过程中,无时无刻都会有对象被创建出来,在程序语言中,创建对象(例如克隆,反序列化)通常仅仅是一个new关键字,但是在虚拟机中是怎样的呢?本文主要了解一下一个对象(仅代指普通对象,不包含Class类和数组)在虚拟机中的创建过程。 当虚拟机遇到一条new 阅读全文
posted @ 2019-05-10 11:07 有一个小梦想 阅读(368) 评论(0) 推荐(0) 编辑
摘要: Java运行时数据区域分为:程序计数器,虚拟机栈,本地方法栈,Java堆,方法区,运行时常量池,直接内存,结构如下: 1.程序计数器: 是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需 阅读全文
posted @ 2019-05-09 17:46 有一个小梦想 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 在编写代码的时候使用这种设计模式可以实现在不对源类修改的情况下,并可以隐式的调用对象。 这里简单介绍两种代理模式:静态代理和动态代理。 一 静态代理 举个例子,比如有一个Class People,该类有一个方法是唱歌sing(),代码如下: 接口People: 实现类PeopleImpl: 但是此时 阅读全文
posted @ 2019-05-06 23:15 有一个小梦想 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 设计程序的时候采用工厂模式可以将一个对象产生一些细节和复杂过程(比如依赖其他对象等)封装起来,使需要使用的地方不需要关心该对象的创建过程。 GOF在《设计模式》中将工厂模式分为两种:工厂方法模式,抽象工厂模式,将简单工厂模式归为工厂方法模式的一种特殊情况,下面按照三种模式分别展开。 1.简单工厂工厂 阅读全文
posted @ 2019-05-05 23:36 有一个小梦想 阅读(371) 评论(0) 推荐(0) 编辑