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

转载 Dubbo -- 四种loadBalance负载均衡算法

  Dubbo中的一个关键接口LoadBalance,dubbo是按照其中的规则来调用多台provider的服务的。  先看一下接口的实现类图:    从上图中我们可以看到dubbo提供了四种算法来实现负载均衡。  1.RandomLoadBalance:随机,按权重设置随机概率。  从字面意思也很好理解,根据每个invoker提前设置好的权重随机分配,看一下源码的实...

2019-08-07 16:25:00 475

转载 Dubbo的10种集群容错模式

  学习Dubbo源码的过程中,首先看到的是dubbo的集群容错模式,以下简单介绍10种集群容错模式  1.AvailableCluster  顾名思义,就是可用性优先,遍历所有的invokers,选择可用的  2.MergeableCluster:当接口需要多个服务组合返回值时,使用该接口  3.ForkingCluster:并行执行,当有一个返回值时,取该值,该...

2019-08-06 21:04:00 242

转载 Linux环境下安装mysql服务

  我使用的是阿里云的ECS服务,系统是CentOS7,安装mysql版本是5.7  第一步,通过  wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm  命令获取安装包,然后用yum命令:  第二步,使用  yum -y install mysql-comm...

2019-05-20 13:34:00 120

转载 深入理解JVM(六) -- GC执行原则和方案

  上篇文章中,我们了解了Java虚拟机垃圾回收的思路和策略,这篇文章我们将了解Java是如何实现高效的回收算法的。  我们需要了解,内存回收必须要保证“一致性”,意思就是在执行GC分析的时候,系统看起来要像是冻结在某一时间点上,不能出现在分析过程中,引用的情况还在发生变化,这样就无法进行分析,这是为什么在GC时必须要停顿所有的Java线程(官方称之为Stop The World),...

2019-05-13 19:01:00 240

转载 深入理解JVM(五) -- 垃圾回收算法

  上篇文章我们了解到哪些内存区域和哪些对象可以被回收,这篇文章我们就来了解一下具体的垃圾回收算法的思路,不讨论具体的实现。  一 最基础算法 标记-清除(Mark-Swap)  为什么说他是最基础的算法,因为这之后的算法思路都是基于此来进行。如同他的名字一样,回收分为两个步骤,标记和清除,但是这种方式有两个缺陷,一是效率问题,标记和清除两个过程的效率都不高;二是空间问题,回收后...

2019-05-13 17:16:00 83

转载 深入理解JVM(四) -- 垃圾内存回收的判定方法和内容

  上一篇文章我们学到了对象在内存中是如何存储的已经是如何被访问的,这篇文章将介绍当内存空间不够时,虚拟机将怎样判定对象可不可以被回收已经哪些地方会发生回收。  垃圾回收主要(不是全部)发生在堆内存中,当一个对象没有存在的必要的时候,占着内存明显不行,所以Java内置的GC会对没有必要存在的内存区域进行回收,那么,如何判断一个对象已经没有使用价值了,或者说,已死了呢?  首先,最...

2019-05-13 14:16:00 117

转载 深入理解JVM(三) -- 对象的内存布局和访问定位

  一 对象的内存布局:  在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header),实例数据(Instance Data)和对齐填充(Padding)。  HotSpot的对象头包括两部分信息,一部分存储对象运转时自身信息,例如hashCode,GC分代年龄,锁状态标志,线程持有的锁,偏向线程id,偏向时间戳等,这部分数据的长度在32和64位虚拟...

2019-05-10 15:39:00 116

转载 深入理解JVM(二)--对象的创建

  Java是一门面向对象的语言,在Java程序运行的过程中,无时无刻都会有对象被创建出来,在程序语言中,创建对象(例如克隆,反序列化)通常仅仅是一个new关键字,但是在虚拟机中是怎样的呢?本文主要了解一下一个对象(仅代指普通对象,不包含Class类和数组)在虚拟机中的创建过程。  当虚拟机遇到一条new指令时,首先将去检查这个指令的参数能否在常量池中定位到一个类的符号引用,并且检查...

2019-05-10 11:07:00 83

转载 深入理解JVM(一) -- 自动内存管理机制

  Java运行时数据区域分为:程序计数器,虚拟机栈,本地方法栈,Java堆,方法区,运行时常量池,直接内存,结构如下:  1.程序计数器:  是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支,循环,跳转,异常处理,线程恢复等基础功能都要...

2019-05-09 17:46:00 91

转载 代理模式(Proxy)

  在编写代码的时候使用这种设计模式可以实现在不对源类修改的情况下,并可以隐式的调用对象。  这里简单介绍两种代理模式:静态代理和动态代理。  一 静态代理  举个例子,比如有一个Class People,该类有一个方法是唱歌sing(),代码如下:  接口People:    实现类PeopleImpl:    但是此时有一个需求,需要在唱歌之前鞠...

2019-05-06 23:15:00 182

转载 工厂模式(Factory)

  设计程序的时候采用工厂模式可以将一个对象产生一些细节和复杂过程(比如依赖其他对象等)封装起来,使需要使用的地方不需要关心该对象的创建过程。  GOF在《设计模式》中将工厂模式分为两种:工厂方法模式,抽象工厂模式,将简单工厂模式归为工厂方法模式的一种特殊情况,下面按照三种模式分别展开。  1.简单工厂工厂模式:  工厂产品:人(抽象类):    具体产品:男人:...

2019-05-05 23:36:00 181

转载 单例模式详解以及需要注意的地方(Singleton)

  单例模式,顾名思义,就是在Java程序中只有唯一一个实例,这样做的好处是可以在不需要多个实例的对象采用单例模式可以节省内存,否则会造成不必要的内存浪费。单例模式的定义为:保证一个类只有一个实例,自己可以初始化自己,且全局可以访问。该模式在Java中广泛使用,例如连接池,连接池一般只需要一个,就采用这种设计模式。  单例模式又分为“饿汉”和“懒汉”两种。  “饿汉”模式:...

2019-05-05 18:52:00 187

转载 SpringBoot启动流程与源码

  一main方法作为程序的入口,执行SpringApplication.run(),传入参数是启动类的class对象@SpringBootApplication注解二run中首先new SpringApplication对象,然后调用该对象的run方法,返回是一个ConfigurableApplicationContext对象。三这里我们先看new SpringA...

2019-05-04 19:02:00 91

空空如也

空空如也

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

TA关注的人

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