随笔分类 -  分享认知

讲解知识,分享认知
摘要:Abstract 在软件产品的增量迭代过程中,产品的每一个版本都对应着一组新的需求。由于各种各样的现实问题,比如资金上的缺乏,时间上的缺乏,各种不同需求之间产生的相互依赖,导致所有的需求无法被同时满足。 总而言之,要选择一个最优的需求组合,是非常困难的问题,其中存在着两个相互冲突的目标,如何在提高用 阅读全文
posted @ 2021-06-10 20:08 小z同学 阅读(174) 评论(0) 推荐(0)
摘要:算法背景 人工蜂群算法 (Artificial Bee Colony, ABC) 是由 Karaboga 于 2005 年提出的一种新颖的基于集群智能的全局优化算法,其直观背景来源于蜂群的采蜜行为。它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工蜂个体的局部寻优行为,最 阅读全文
posted @ 2021-06-06 14:36 小z同学 阅读(1424) 评论(0) 推荐(0)
摘要:只有一个实例 一、知识概述 Singleton 模式是指,在任何情况下只生成一个实例,且该实例能够在程序上表现出来。该模式仅包含一种角色。 Singleton:负责实现返回唯一实例的方法。 二、示例程序 以下为实现了Singleton模式的示例程序,这段示例程序的作用是,从外部获取唯一实例,并进行验 阅读全文
posted @ 2021-02-21 14:36 小z同学 阅读(111) 评论(1) 推荐(0)
摘要:将实例的生成交给子类 一、知识概述 Factory Method 模式是指,在父类中定义生成实例的框架,在子类中实现具体处理。Factory Method 由Template Method 演变而来,其主要包含四种角色。 Product:为产品,属于框架内部,负责声明产品实例所需的方法 Creato 阅读全文
posted @ 2021-02-20 22:05 小z同学 阅读(134) 评论(0) 推荐(0)
摘要:将具体处理交给子类 一、知识概述 Template Method 设计模式是指在父类中定义处理流程的框架,在子类中实现具体处理。其主要包含两种主要的角色。 AbstractClass: 为抽象类,不仅负责实现模板方法,还负责声明在模板方法中所使用到的抽象方法。 ConcreteClass: 为具体类 阅读全文
posted @ 2021-02-19 17:27 小z同学 阅读(115) 评论(0) 推荐(0)
摘要:一、知识概述 Adapter 设计模式用于填补“现有程序”和”所需程序“之间的差异,即现有的程序无法直接使用,需要经过适当的变换之后才能满足需求。Adapter模式包含四种主要的角色。 Target: 为对象,负责声明所需的方法 Client: 为请求者,负责使用Target角色所声明的方法进行具体 阅读全文
posted @ 2021-02-19 00:35 小z同学 阅读(240) 评论(0) 推荐(0)
摘要:一、知识概述 Iterator 模式用于在数据集合中按照顺序遍历集合,其包含四种主要的角色: Iterator:意为迭代器,负责声明按顺序逐个遍历元素的接口api ConcreteIterator:为具体的迭代器,负责实现Iterator角色所声明的接口api Aggregate:意为集合,负责声明 阅读全文
posted @ 2021-02-18 00:10 小z同学 阅读(110) 评论(0) 推荐(0)
摘要:一、前言 本文的主要工作:尝试以时间顺序追踪一遍 Java 执行的整个过程,以及展示 JVM 中内存模型的相应变化。 本文的主要目的:希望能够通过 Java 执行过程的冰山一角,增进对编程语言工作原理的理解。 以下面这段代码为例,追踪它的执行过程: public class Car { privat 阅读全文
posted @ 2021-01-31 18:33 小z同学 阅读(301) 评论(0) 推荐(0)
摘要:本来是准备讲CPP中的std::sort,但因为最近Java用得多,不知怎么的便习惯性走Java角度看问题了,所以这篇文章看起来估计会有点奇怪... 一、简单模拟sort回调 std::sort函数本质上是一个静态回调函数,在回调中属于非常基本的操作,这里就不细讲,我们可以尝试进行模拟实现。 顺序图 阅读全文
posted @ 2020-11-07 01:23 小z同学 阅读(219) 评论(0) 推荐(0)
摘要:在一个应用系统中,不论使用何种编程语言,模块之间要进行调用,仅存在三种方式:同步调用、异步调用、回调。本文就其中回调方式进行详细解读,并通过匿名内部类的手段,在最后实现一个同步回调的过程。 一、回调的意义 在学习回调之前,我们需要知道使用回调的原因,和回调的应用场景。 不如先思考两个问题: 栈底对栈 阅读全文
posted @ 2020-10-28 11:08 小z同学 阅读(1030) 评论(0) 推荐(0)
摘要:cookie 保持会话 Web应用程序的请求与响应基于HTTP,为无状态的通信协议。当用户的一次访问请求结束后,后端服务器就无法识别下一次来访问的是否为上一次的用户。 cookie作为在浏览器存储信息的一种方式,用户通过对cookie的设置和读取,可以保持与后端服务器的交互状态。 session 降 阅读全文
posted @ 2020-08-07 22:02 小z同学 阅读(153) 评论(0) 推荐(0)
摘要:平常在看书、读论文的过程中,我们大都会遇到一个难题:书这么厚怎么看,论文这么晦涩怎么读? 看书以及看论文,都有一定的技巧,我们应该结合自身所需,去寻求主要矛盾。 看源码也是如此。源码优点在于它有最全的信息,我们可以从找到任何想要的答案;源码缺点在于内容太多,重点混淆。所以解决问题的思路有很多,这里选 阅读全文
posted @ 2020-04-20 18:15 小z同学 阅读(131) 评论(0) 推荐(0)
摘要:假如现在有这么一个问题: 一个序列从1到n依次入栈,那么可能的出栈序列一共有多少种? 阅读全文
posted @ 2019-02-21 00:44 小z同学 阅读(3294) 评论(0) 推荐(0)
摘要:存储系统的各层次之间是如何协作的呢? 这篇文章通过贯穿整个存储系统的访问流程,展现出各个层次之间的协作关系。下图为存储系统的访问流程图,其访问过程可以分为5个部分:①TLB的访问过程,②Page的访问过程,③页面的分配和置换,④cache的访问过程,⑤主存储器的访问过程 阅读全文
posted @ 2019-01-19 12:41 小z同学 阅读(3334) 评论(2) 推荐(4)
摘要:通常在分支合并的过程中要做到两点: 产生有效的合并结果 提交日志记录具备可读性 如果仅仅保证合并结果的正确性,却忽略日志记录的可读性,将产生不受约束的合并日志,导致代码仓库不可维护,影响项目后期开发。这里我们围绕日志记录的可读性(第二点),来探讨合并分支的各种方法,并归纳出不同场景下的最佳实践。 场 阅读全文
posted @ 2018-07-22 16:24 小z同学 阅读(4791) 评论(0) 推荐(1)
摘要:JVM规范允许类加载器在预料某个类将要被使用时就预先加载它,下图为实例方法被调用时的JVM内存模型,1~7完整的描述了从类加载开始到方法执行前的预备过程,后面将对每一个步骤进行解释 在我们加载类的过程中经过了这些步骤 第一步 加载目标字节码至方法区,并转化为方法区的运行时数据结构 第二步 在堆区创建 阅读全文
posted @ 2018-07-09 11:31 小z同学 阅读(422) 评论(0) 推荐(0)
摘要:今天看到一段代码,思考了一下觉得挺精妙的,围绕的是一个接口包装的问题,下面举个小栗子。 场景: 通常我们会利用接口来观测具有相同行为的对象,从而进行具体行为的派发,目的是为了解除调用方和行为对象的耦合,我们可以很方便的再次变换行为对象;但是我们往往会忽略,在调用方处理接口时形成的耦合。 设想一个常见 阅读全文
posted @ 2018-07-03 01:56 小z同学 阅读(626) 评论(0) 推荐(0)
摘要:Java的方法调用过程 Java变量:基本类型变量、指针变量 push 压入新的栈桢 在栈桢内部创建局部基本类型变量,接收参数值 在栈桢内部创建局部指针变量,接收参数值后,该指针变量指向堆上实例 pop 弹出栈桢 基本类型变量和指针变量均被销毁 弹出原始栈桢 指针变量被销毁,堆上实例被垃圾回收 当然 阅读全文
posted @ 2018-02-07 01:56 小z同学 阅读(200) 评论(0) 推荐(0)
摘要:今天看JVM的过程中收获颇丰,但一想到这些学习心得将来可能被遗忘,便一阵恐慌,自觉得以后要开始坚持做读书笔记了。 操作系统层面的内存管理 物理内存是一切内存管理的基础,Java中使用的内存和应用程序的内存一样是从物理内存申请下来的内存。物理内存也就是寄存器,通过地址总线与CPU相连,通常情况下地址总 阅读全文
posted @ 2018-01-23 00:19 小z同学 阅读(345) 评论(0) 推荐(0)
摘要:我对代码风格的理解就是能使作者更好的写代码,能使阅者更好的读代码。 方法如段落,类如章节,代码的美感正如文字的美感,代码应是一种艺术。 代码该如何写 在写代码的过程中最重要的便是对章节和段落的安排。和写文章一样,段落之间存在着引用,如同盘根错节的树结构。当行文没有着重点,有血肉却无骨架时,说明该分章 阅读全文
posted @ 2018-01-21 12:18 小z同学 阅读(148) 评论(0) 推荐(0)