摘要: 实现 实现观察者模式有很多形式,比较直观的一种是使用一种“注册——通知——撤销注册”的形式。 观察者 观察者 (Observer)将自己注册到被观察对象(Subject)中,被观察对象将观察者存放在一个容器(Container)里。 被观察 被观察 被观察对象发生了某种变化(如图中的measurem 阅读全文
posted @ 2019-01-18 16:07 楠木(鱼摆摆) 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 类的加載规则 总的顺序是:先父类后子类,先静态后动态,属性和代码块的初始化遵循正常的出场顺序无论是静态还是动态,但是他们总是先于构造器执行。 注:当加载到一个静态属性的时候他的赋值对象为一个静态的对象,这个时候就会中断静态相关的加载,转而先去执行非静态相关的代码。这里还需要注意的是属性和代码块的加载 阅读全文
posted @ 2019-01-16 10:33 楠木(鱼摆摆) 阅读(100) 评论(0) 推荐(0) 编辑
摘要: StringBuiler和StringBuffer的定义 通过代码,我们可以看到他们都是继承了AbstractStringBuilder类 ,他们之前的区别就在于StringBuffer在重写父类的方法时,都加了synchronized关键字。然后都是直接调用父类的方法。所以接下来我们介绍Abstr 阅读全文
posted @ 2019-01-04 17:13 楠木(鱼摆摆) 阅读(384) 评论(0) 推荐(0) 编辑
摘要: String 类的定义 //package java.lang; 这是一个用 final 声明的常量类,不能被任何类所继承,而且一旦一个String对象被创建, 包含在这个对象中的字符序列是不可改变的, 包括该类后续的所有方法都是不能修改该对象的,直至该对象被销毁,这是我们需要特别注意的(该类的一些 阅读全文
posted @ 2019-01-04 16:29 楠木(鱼摆摆) 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 介绍 RabbitMq中不存在topic这个概念,不同的消费者想要消费不同的消息只有通过Exchange(交换器)来实现 Exchange类型介绍 注:1. 在针对同一个queue或者exchage时,queueDeclare消费者和生产者所有的配置都必须要保存一致,否则会抛出530的异常。 2.E 阅读全文
posted @ 2018-12-03 16:55 楠木(鱼摆摆) 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 介绍 主要演示生产者和消费如何传递消息的 生产者 消费者 注: 1.在消费者最后设置channel.basicConsume时,第二个参数代表是否需要自动回复,即如果是true,不论消费成功还是失败,即使抛出异常,该条消息也会从消息队列中删除,所以对于消息准确性要求教高的业务场景,可以设置为fals 阅读全文
posted @ 2018-12-03 11:51 楠木(鱼摆摆) 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 介绍 注:没有注册中心,总共只分为三个角色,product,server,customer。 Queue 消息队列,等同于rocketmq中的topic Exchange 生产者产生的消息并不是直接发送给消息队列Queue的,而是要经过Exchange(交换器),由Exchange再将消息路由到一个 阅读全文
posted @ 2018-12-03 11:45 楠木(鱼摆摆) 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 介绍 垃圾回收需要做的三件事:1.那些内存需要回收;2.什么时候需要回收;3.如何回收。 如何判断对象可以回收? 引用计数法 即对象在被创建时,添加一个引用计数器,每当有一个地方引用它时,计数器+1,引用失效时,计数器-1,任何时刻计数器为0的对象就是不可能再被使用的(是可以被回收还是不可能在被使用 阅读全文
posted @ 2018-11-30 15:23 楠木(鱼摆摆) 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 介绍 原文地址:1 在启动虚拟机时,可以通过配置不同参数来自定义自己的内存相关信息。 注:以下参数都是直接举例使用,可以通过修改后面的数字和单位直接使用。 JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K.更具应用的线程所需内存大小进行 调整.在相同物理内存下,减小这个值能生成 阅读全文
posted @ 2018-11-30 11:12 楠木(鱼摆摆) 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 介绍 如图,这是jvm运行时的数据分析。以下分别介绍各个数据区域的作用 程序计数器 程序计数器是jvm较小的一块内存空间,可以看作当前线程所执行的字节码的行号指示器。程序计数器是线程私有的内存(java虚拟机多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器 阅读全文
posted @ 2018-11-30 10:52 楠木(鱼摆摆) 阅读(120) 评论(0) 推荐(0) 编辑