摘要:
线程的状态 枚举类型中定义了线程的六种状态: ,`RUNNABLE BLOCKED WAITING TIMED_WAITING TERMINATED`。 线程在某一时刻只能拥有一种状态,但是在线程的整个生命周期,线程的状态会发生变化。 各状态的说明 NEW NEW状态是线程已经被创建,但还没调用 。 阅读全文
摘要:
结论 为了加深印象,先把结论放在文章开头。 ++ Java中只有值传递 ++。 形参与实参 在理解Java的值传递 实参Argument 实际参数,主调用函数传递给调用函数的参数 形参Parameter 形式参数,并非实际存在的变量,只在函数定义的函数内部使用。在调用函数时,实参将会给形参赋值,从而 阅读全文
摘要:
问题描述 一个对象(某个字段为枚举类型,为了不采用默认的序列化过程,用 指定了序列化器和反序列器,过程见 "旧博文" ),将其放到 中再序列化 对象,用得到的 字符串再反序列化时,发现能够正常反序列化出 ,而对 中的某个元素再反序列化成类对象时,出错。 示例 同样用旧博文的示例做个简单测试。 基本对 阅读全文
摘要:
问题描述: 线上一个服务的突然挂了,无法被调用,查看该服务日志发现Dubbo的线程池全满了: 没有多少访问量,但是线程却猛增,猜测可能是哪里出现了死循环或者哪里发生了死锁。 首先,检测一下服务器的CPU使用量,发现在正常范围内,基本上可以排除哪里出现了死循环。 先找出该服务的进程,用 命令 线程在分 阅读全文
摘要:
发布与订阅 Redis 的发布与订阅功能有 命令, 命令, 命令, 命令等组成。 客户端可以通过 命令订阅一个或多个频道,当其它客户端向被订阅的频道发送消息时,频道所有的订阅者都会收到这消息。 频道的订阅与退订 Redis会在 中用 字典来记录订阅的客户端和频道的关系。其中字典的键是被订阅的频道,而 阅读全文
摘要:
复制 在Redis中,用户可以通过 命令或是 选项设置服务器的主从关系,从(SLAVE)服务器会复制主(Master)服务器。 旧版复制功能实现(2.8以前) 旧版复制功能主要分为两个过程: 同步(SYNC)和命令传播(COMMAND PROPGATE)。 同步过程: 当从服务器执行 命令时,从服务 阅读全文
摘要:
适配器模式 适配器模式:将一个类的接口,转换成另一个类的接口。让原本不兼容的类可以使用(这里的接口表示某种意义上的抽象)。 适配器模式分为两种: 类适配器模式:适配者和适配器为继承的关系,适配器在提供目标的行为时,是通过继承适配者的行为去表现。 对象适配器模式:适配者和适配器为组合的关系,适配器在提 阅读全文
摘要:
介绍 克鲁斯卡尔(Kruskal)算法是用来求出连通图中最小生成树的算法。 连通图:指==无向图==中==任意两点都能相通==的图。 最小生成树:指联通图的所有生成树中==边权重的总和最小==的树(即,找出一个树,让其联通所有的点,并让树的边权和为最小)。 算法思想 克鲁斯卡尔算法的主要基本思想有两 阅读全文
摘要:
介绍 算法作为一种最短路径算法,可以用来计算一个节点到图上其他节点的最短距离。 主要是通过启发式的思想,由中心节点层层向外拓展,直到找到中点。 适用于无向图和有向图。 算法思想 1. 假设我们要计算节点 到其它节点的最短距离 2. 引入两个集合( ,`U S`表示已经求出最短路径的点(以及最短距离) 阅读全文
摘要:
单例模式可以保证一个类只允许存在一个该列的实例,并提供了访问该类对象的唯一方式。 在许多应用场景中,该模式可以保证系统的正确运行。 以下是单例模式的几种实现方式。 方式一:最基础的单例模式 上面的代码中先通过私有化类的构造函数,禁止外部直接调用构造函数创建对象,同时增加了一个私有的静态变量存放单例对 阅读全文