摘要:
一、什么是观察者模式 观察者模式又叫做发布-订阅模式或者源-监视器模式。 结合它的各种别名大概就可以明白这种模式是做什么的。 其实就是观察与被观察,一个对象(被观察者)的状态改变会被通知到观察者,并根据通知产生各自的不同的行为。 以下为《设计模式的艺术》中给出的定义: 观察者模式(Observer 阅读全文
摘要:
一、什么是策略模式 定义一些列算法类,将每一个算法封装起来,并让它们可以互相替换。 策略模式让算法独立于使用它的客户而变化,是一种对象行为型模式。 以上是策略模式的一般定义,属于是课本内容。 在没有真正理解策略模式之前并不需要对此定义下过多功夫,读一遍直接进入下一章节。 二、为什么要用策略模式 我们 阅读全文
摘要:
首先,跨域的域是什么? 跨域的英文是:Cross-Origin。 Origin 中文含义为:起源,源头,出生地。 在跨域中,"域"指的是一个 Web 资源(比如网页、脚本、图片等)的源头。 包括该资源的协议、主机名、端口号。 在同源策略中,如果两个资源的域相同,则它们属于同一域,可以自由进行交互和共 阅读全文
摘要:
一、程序计数器 程序计数器内存很小,可以看作是当前线程所执行字节码的行号指示器。 有了它,程序就能被正确的执行。 因为有线程切换的存在,则每个线程必须有各自独立的程序计数器,即线程私有的内存。 这里再解释一下什么是线程切换,线程切换指的是: 单处理器在执行多线程时所进行的线程切换,多线程的交替运行会 阅读全文
摘要:
当我们学习 apple 时候,我们很容易记住 apple 是什么。 我们也不会对 apple 的概念产生模糊混淆。 为什么? 因为字典上明确说了,apple = 苹果。 那苹果是什么? 苹果就是圆圆的红红的,吃起来甜甜的水果。 我们学习 apple 如此简单,就是因为我们对苹果这个概念的理解已经通透 阅读全文
摘要:
一、java锁存在的必要性 要认识java锁,就必须对2个前置概念有一个深刻的理解:多线程和共享资源。 对于程序来说,数据就是资源。 在单个线程操作数据时,或快或慢不存在什么问题,一个人你爱干什么干什么。 多个线程操作各自操作不同的数据,各干各的,也不存在什么问题。 多个线程对共享数据进行读取操作, 阅读全文
摘要:
聚簇索引一般指的是主键索引(如果存在主键索引的话)。 作为一个正常开发,建表时主键肯定是必须的。 而即使如果表中没有定义主键,InnoDB 会隐式选择一个唯一的非空索引代替。 所以我们就直接含糊点说: 聚簇索引就是主键索引!其余的都是非聚簇索引。 那到底什么是聚簇索引,什么是非聚簇索引? 聚簇就是扎 阅读全文
摘要:
开发中经常遇到需要判空的地方,比如对字符串进行判空操作。 而有时候工具包太多不知道用哪个。 就像下图,光一个 StringUtils 就有十几个包弹出来。 怎么选? 其实用哪个都行。 最重要的是: 有一套自己用的顺手的工具。 或者换句话说: 要养成自己的开发习惯。 有了自己专属的开发习惯,不管客观上 阅读全文