观察者模式 观察者模式也叫发布-订阅模式,即Publish/Subscirbe,定义:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象再状态发生改变时,会通知所有观察真对象,使他们能够自动更新自己。 其实这个模式其实是最常用的。 我想起了上段时间做的一个物联网项目,用的是MQTT协议,也是基于发布订阅模式的。当时对观察者模式不了解,所以弄了好久才明白。废话不多说。开始 2017-11-11 Java 设计
状态模式 定义: 状态模式(State),当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类。 一个方法过长就是代码的坏味道。这个类或者这个方法违背类“单一职责原则”。 状态模式主要解决的是当控制一个对象状态转换的体检表达式过于复杂的时的情况,把状态的判断逻辑转移到不同的状态的一系列类当中,可以把复杂的判断逻辑化。当然,如果这个判断很简单,那就没必要用“状态模式”了。 我们看到U 2017-11-05 Java 设计
策略模式 首先有一个收银台小程序: 商场会有促销活动,包括打折,买200减100,买500送积分之类的很多那么就会用到很多的if else 判断。 那么如何消除if else 判断呢?可能有人想到了使用简单工厂模式。是的,这样确实能够解决if 判断。但是如果后期的更改,我们是不是就要修改工厂类呢?岂不是很麻烦? 123CashSuper csuper = CashFactory.createCashAcce 2017-10-27 Java 设计
深入解析单例模式的七种实现 什么是单例模式什么是单例模式呢? 我们引用一下维基百科: 单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这 2017-10-23 Java 设计
CPU 传统cpu只有控制器和运算器,而现代cpu异常复杂,含有浮点运算器,cache等。 控制器 由程序计算器,指令寄存器,指令译码器,时序产生器和操作控制器组成,他是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。控制器的主要功能有: 1231. 从内存中取出一条指令,并指出下一条指令在内存中的位置。2. 对指令进行译码和测试,并产生相应的操作控制信号,以便启动规定的动作。比如一次 2017-10-08 基础
IO管理和磁盘调度 I/O管理和磁盘调度I/O 也许是操作系统设计中欧最复杂的工作。因为村子这大量的设备,而且这些设备有许多应用,所以很难开发出一种通用一致的解决方案。 计算机系统和外界的接口是I/O体系结构。设计这个结构的目的在于提供一个控制与外界交互的系统方法,同时提供给操作系统其所需的有效管理I/O的信息。 I/O函数可以分成若干层,底层处理接近于物理功能,高层则用逻辑方法处理IO。这样,硬件参数的改变不必改变 2017-10-08 基础
Think-in-Java-读后感 这几天在对Think In Java 进行最后的冲锋,终于在今晚完成了第一次通读Think In Java的目标(除去GUI)。但是却感到更加的痛苦了,原本想看完了为了补充可能会遗漏的知识,看完之后才发现,原来自己知道的才是遗留的。知道的太少了,看到毕玄,R大,小狼,假笨,康德等等大神,我觉得自己就是一傻逼,连openJdk都不知道,一直以为Java都是开源的,为什么以为是开源的?我们不是每天都能 2017-10-08 扯淡
中央处理器 中央处理器CPU 是计算机的中央处理部件,具有指令控制,操作控制,时间控制,数据加工等基本功能。 早起的cpu有运算器和控制器两大部分组成。随着高密度继承电路技术的发展,当今的cpu新片编程运算器,cache和控制器三大部分,其中还包括浮点运算器,存储管理部件等,cpu中至少要有如下六类寄存器:指令寄存器,程序计数器,地址寄存器,缓冲寄存器,通用寄存器,状态条件寄存器。 CPU从存储器取出一条指令 2017-10-08 基础
内存管理 内存管理内存管理的要求在研究各种内存管理的机制和技术时,一定要牢记内存管理所必须满足的要求: 重定位 指的是处理机硬件和操作系统软件必须能将程序代码中地址映射为程序在内存中实际的物理地址。 保护 每个进程必须内保护以免受到其他进程的干扰,未经允许进程不能对其他进程的存储区进行读写操作 共享 协同工作的多个进程需要共享同一数据结构。 逻辑组织 计算机系统中的内存组织形式是包含字或字节序 2017-10-08 基础
处理机调度 处理机调度对于进程的执行,操作系统必须做出三个决定:长程调度,中程调度以及短程调度。 对于短程调度的设计可面向用户,也可面向系统。用户主要关心响应时间,而系统关系吞吐量和处理机利用率。 短程调度的算法有:先来先服务(FCFS),时间片轮转法,最短进程优先,最短剩余时间优先,最高响应比优先,多级反馈队列等。调度算法的选择取决于期望的性能及实际应用。 在多处理机系统中。处理机可共享内存,各调度算法的性 2017-10-08 基础
外围设备 外围设备各种外围设备的数据传输速率相差很大。如果保证主机与外围设备在时间上同步,则设计外围设备的定时问题。 在计算机系统中,CPU对外围设备的管理有一下五种方式:1.程序查询方式;2.程序中断方式;3.直接存储访问(DMA)方式;4.通道方式;5.外围处理机(PPU)方式;其中第一种对CPU的资源浪费最大,而第五种使CPU得效率得到最大发挥,但是需要更多的硬件支持。 程序中断方式是各类计算机中广泛 2017-10-08 基础
存储系统 存储系统计算机对存储器的要求是容量大,速度快,成本低。为了解决这三方面的矛盾,计算机采用多级存储体系结构,即cache,主存和外存。cpu能直接发你给我内存(cache, 主存),但不能直接访问外存。存储器的技术指标有存储容量,存取时间,存储周期,存储器带宽。 广泛使用的SRAM和DRAM都是半导体随机读写存储器,前者速度比后者快,按集成度不如后者高。二者的有点是体积小,可靠性高,价格低廉,缺点是 2017-10-08 基础