完全说明:环型队列长度如何计算 关于环型队列长度的计算一 说明队列长度计算公式二 为什么是顺时针移动而不是逆时针移动呢?一 说明队列长度计算公式参考:如何求循环队列的元素个数?假设数据只进入队列,而不出队列,即front=0,在原处,而rear在不断增加。此时显然,循环队列的元素个数为rear-front=rear-0 =rear, 如下图假设数据进入队列,有出队列,如下图此时要想得到队列长度,参考上面思想,我们可以把队列顺时针移动,使其front回归到front=0,此时rear的值就是队列长度。那么队列移动
VMware安装ContOS7(附加安装包) 一 所需环境及软件操作系统:win10 64位VMware:16.0.0 build-16894299,安装:CentOS7:安装二 安装步骤VMware中文件——新建虚拟机稍后安装操作系统选择Linux操作系统及CentOS7 64位选择安装位置:最好不要有中文路径、不要安装在C盘设置虚拟磁盘大小自定义硬件:内存2G,处理器2个,其他硬件自己处理选择安装CentOS镜像启动虚拟机,进行初始化设置选择操作系统中的语言其他设置如图:注意软件选择:本人习惯可视化
Java并发编程:volatile关键字解析 本章目录一.内存模型的相关概念1.1 缓存不一致问题的产生1.2 缓存不一致问题的解决二.并发编程中的三个概念2.1 原子性2.2 可见性2.3 有序性三 Java内存模型3.1 原子性3.2 可见性3.3 有序性四 深入剖析volatile关键字4.1 volatile关键字的两层语义4.2 volatile保证原子性吗?4.3 volatile能保证有序性吗?4.4 volatile的原理和实现机制五 使用volatile关键字的场景5.1 状态标记量5.2 double checkvolatile这
Java设计模式(十)—状态模式、策略模式、职责链模式 本章目录标题第24章 状态模式24.1 应用场景:APP抽奖24.2 状态模式24.3 应用案例:APP抽奖14.4 状态模式的注意事项第24章 状态模式24.1 应用场景:APP抽奖请编写程序完成 APP 抽奖活动 具体要求如下:(1)假如每参加一次这个活动要扣除用户 50 积分,中奖概率是 10%(2)奖品数量固定,抽完就不能抽奖(3)活动有四个状态: 可以抽奖、不能抽奖、发放奖品和奖品领完 4) 活动的四个状态转换关系图24.2 状态模式基本介绍(1)状态模式(State Pat
Java设计模式(九)—中介者模式、备忘录模式、解释器模式 本章目录标题第21章 中介者模式21.1 应用场景:智能家居21.2 传统方式21.3 中介者模式21.4 应用案例:智能家居21.5 中介者模式的注意事项第22章 备忘录模式22.1 应用场景:游戏角色状态恢复问题22.2 传统方案解决游戏角色恢复22.3 备忘录模式22.4 应用案例:游戏角色恢复22.5 备忘录模式的注意事项和细节第23 章 解释器模式23.1 应用场景:四则运算问题23.2 传统方案23.3 解释器模式23.4 应用案例:解释器模式来实现四则第21章 中介者模式21.1 应用场景
Java设计模式(八)—访问者模式、迭代器模式、观察者模式 本章目录标题第18章 访问者模式18.1 应用场景:测评系统18.2 传统方式18.3 访问者模式18.4 应用案例:测评系统18.5 访问者模式的注意事项第19章 迭代器模式19.1 需求:院系展示19.2 传统方式19.3 迭代器模式19.4 应用案例:院系展示19.5 迭代器模式在JDK-ArrayList 集合应用19.6 迭代器模式的注意事项第20章 观察者模式20.1 应用场景:天气预报20.2 传统模式20.3 观察者模式20.4 应用案例:天气预报第18章 访问者模式18.1 应用场景:
Java设计模式(七)—代理模式、模板方法模式、命令模式 本章目录标题第15章 代理模式15.1 代理模式(Proxy)15.2 静态代理15.3 动态代理15.4 Cglib 代理(子类代理)第15章 代理模式15.1 代理模式(Proxy)基本介绍(1)代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象。这样做的好处 是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。(2)被代理的对象:远程对象、创建开销大的对象、需要安全控制的对象(3)代理模式有不同的形式, 主要有三种 静态代理、动态代
Java设计模式(六)—组合模式、外观模式、享元模式 本章目录第 12 章组合模式(Composite Pattern)12.1 使用场景12.2 传统方案解决学校院系展示12.3 组合模式12.4 组合模式的应用案例12.5 组合模式在 JDK 集合的源码分析第 12 章组合模式(Composite Pattern)12.1 使用场景一个学校院系展示需求:编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院, 一个学院有多个系。如图:12.2 传统方案解决学校院系展示传统方案解决学校院系展示存在的
Java设计模式(五)—适配器模式、桥接模式、装饰者模式 本章目录第九章 适配器模式9.1 基本情况9.2 类适配器9.2.1 类适配器模式的类9.2.2 应用案例第九章 适配器模式9.1 基本情况基本介绍(1)适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本 因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)(2)适配器模式属于结构型模式(3)主要分为三类:类适配器模式、对象适配器模式、接口适配器模式工作原理1(1)适配器模式:将一个类的接口转换成另
Java设计模式(四)—原型模式、建造者模式 这里写目录标题第七章 原型模式7.1 克隆羊问题7.2 传统方式解决克隆羊问题7.3 原型模式第七章 原型模式7.1 克隆羊问题现在有一只羊 tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和 tom 羊 属性完全相同的 10只羊。7.2 传统方式解决克隆羊问题类图代码实现(1)羊类public class Sheep { private String name; private int age; private String color; public S
Java设计模式(三)—单例设计模式、工厂模式 本章目录第 5 章 单例设计模式5.1 单例设计模式介绍5.2 饿汉式(静态常量)5.3 饿汉式(静态代码块)5.4 懒汉式(线程不安全)5.5 懒汉式(线程安全,同步方法)5.6 懒汉式(同步代码块)5.7 双重检查5.8 静态内部类5.9 枚举5.10 单例模式在 JDK 应用的源码分析5.11 单例模式注意事项和细节说明第 5 章 单例设计模式5.1 单例设计模式介绍单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例, 并且该类只提供一个取得其对象实例的方法(
Java设计模式(二)—UML类图、设计模式概述 本章目录第 3 章 UML 类图3.1 UML 基本介绍3.2 UML 图3.3 类图描述类之间的关系3.3.1 类图—依赖关系(Dependence)3.3.2 类图—泛化关系(generalization)3.3.3 类图—实现关系(Implementation)3.3.4 类图—关联关系3.3.5 类图—聚合关系(Aggregation)3.3.6 类图—组合关系(Composition)第 3 章 UML 类图3.1 UML 基本介绍UML——Unified modeling langua
Java设计模式(一)-七大原则 提示:本文参考尚硅谷韩顺平教学内容本章目录一 设计模式七大原则1.1 设计模式的目的2.2 设计模式七大原则2.3 单一职责原则2.3.1基本介绍3.1.2 单一职责原则注意事项和原则2.4 接口隔离原则(Interface Segregation Principle)2.4.1基本介绍2.5 依赖倒转原则(Dependence Inversion Principle)2.5.1基本介绍2.5.2应用实例2.5.3 依赖关系传递的三种方法和应用案例2.5.4依赖倒转原则的注意事项和细节一 设计模式七大
Java数据结构与算法(九)-程序员常用的10中算法 本章目录第14章 程序员常用的10中算法14.1 二分查找算法(非递归)14.1.1 二分查找算法(非递归)介绍14.2 分治算法14.2.1 分治算法介绍14.2.2 分治算法最佳实践-汉诺塔14.3 动态规划算法14.3.1 应用场景-背包问题14.3.2 动态规划算法介绍14.3.3 动态规划算法最佳实践-背包问题14.4 KMP算法14.4.1 应用场景-字符串匹配问题14.4.2 暴力匹配14.4.3 KMP 算法介绍14.4.4 KMP 算法最佳应用-字符串匹配问题14.5 贪心算法14.5.1
Java数据结构与算法(八)-多路查找树、图 本章目录第12章 多路查找树12.1 二叉树与B树12.1.1 二叉树的问题分析12.1.2 多叉树12.1.3 B树的基本介绍12.2 2-3树12.2.1 2-3 树介绍12.2.2 2-3树的应用案例12.2.3 其他说明12.3 B 树、B+树和 B*树12.3.1 B树的介绍12.3.2 B+树12.3.4 B*树第12章 多路查找树12.1 二叉树与B树12.1.1 二叉树的问题分析二叉树需要加载到内存的,如果二叉树的节点少,没有什么问题,但是如果二叉树的节点很多(比如1 亿), 就