摘要: 一、前言 本文的主要工作:尝试以时间顺序追踪一遍 Java 执行的整个过程,以及展示 JVM 中内存模型的相应变化。 本文的主要目的:希望能够通过 Java 执行过程的冰山一角,增进对编程语言工作原理的理解。 以下面这段代码为例,追踪它的执行过程: public class Car { privat 阅读全文
posted @ 2021-01-31 18:33 小z同学 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 在一个应用系统中,不论使用何种编程语言,模块之间要进行调用,仅存在三种方式:同步调用、异步调用、回调。本文就其中回调方式进行详细解读,并通过匿名内部类的手段,在最后实现一个同步回调的过程。 一、回调的意义 在学习回调之前,我们需要知道使用回调的原因,和回调的应用场景。 不如先思考两个问题: 栈底对栈 阅读全文
posted @ 2020-10-28 11:08 小z同学 阅读(935) 评论(0) 推荐(0) 编辑
摘要: 存储系统的各层次之间是如何协作的呢? 这篇文章通过贯穿整个存储系统的访问流程,展现出各个层次之间的协作关系。下图为存储系统的访问流程图,其访问过程可以分为5个部分:①TLB的访问过程,②Page的访问过程,③页面的分配和置换,④cache的访问过程,⑤主存储器的访问过程 阅读全文
posted @ 2019-01-19 12:41 小z同学 阅读(2886) 评论(2) 推荐(3) 编辑
摘要: 最近写了颇多笔试,下面归纳一下遇到过的经典排序算法 1、为了方便调试这些排序算法,这里设计了一个的简易测试框架 具体功能:当我们实现不同算法时,只需要关注方法本身的正确性和完整性,框架会自动化帮助我们完成对该方法的测试用例 实现方式:我们在外层调用封装好的框架,将对象传入框架中进行自我检查,使目标方 阅读全文
posted @ 2018-03-26 01:20 小z同学 阅读(921) 评论(0) 推荐(0) 编辑
摘要: Abstract 在软件产品的增量迭代过程中,产品的每一个版本都对应着一组新的需求。由于各种各样的现实问题,比如资金上的缺乏,时间上的缺乏,各种不同需求之间产生的相互依赖,导致所有的需求无法被同时满足。 总而言之,要选择一个最优的需求组合,是非常困难的问题,其中存在着两个相互冲突的目标,如何在提高用 阅读全文
posted @ 2021-06-10 20:08 小z同学 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 算法背景 人工蜂群算法 (Artificial Bee Colony, ABC) 是由 Karaboga 于 2005 年提出的一种新颖的基于集群智能的全局优化算法,其直观背景来源于蜂群的采蜜行为。它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工蜂个体的局部寻优行为,最 阅读全文
posted @ 2021-06-06 14:36 小z同学 阅读(1080) 评论(0) 推荐(0) 编辑
摘要: 只有一个实例 一、知识概述 Singleton 模式是指,在任何情况下只生成一个实例,且该实例能够在程序上表现出来。该模式仅包含一种角色。 Singleton:负责实现返回唯一实例的方法。 二、示例程序 以下为实现了Singleton模式的示例程序,这段示例程序的作用是,从外部获取唯一实例,并进行验 阅读全文
posted @ 2021-02-21 14:36 小z同学 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 将实例的生成交给子类 一、知识概述 Factory Method 模式是指,在父类中定义生成实例的框架,在子类中实现具体处理。Factory Method 由Template Method 演变而来,其主要包含四种角色。 Product:为产品,属于框架内部,负责声明产品实例所需的方法 Creato 阅读全文
posted @ 2021-02-20 22:05 小z同学 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 将具体处理交给子类 一、知识概述 Template Method 设计模式是指在父类中定义处理流程的框架,在子类中实现具体处理。其主要包含两种主要的角色。 AbstractClass: 为抽象类,不仅负责实现模板方法,还负责声明在模板方法中所使用到的抽象方法。 ConcreteClass: 为具体类 阅读全文
posted @ 2021-02-19 17:27 小z同学 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 一、知识概述 Adapter 设计模式用于填补“现有程序”和”所需程序“之间的差异,即现有的程序无法直接使用,需要经过适当的变换之后才能满足需求。Adapter模式包含四种主要的角色。 Target: 为对象,负责声明所需的方法 Client: 为请求者,负责使用Target角色所声明的方法进行具体 阅读全文
posted @ 2021-02-19 00:35 小z同学 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 一、知识概述 Iterator 模式用于在数据集合中按照顺序遍历集合,其包含四种主要的角色: Iterator:意为迭代器,负责声明按顺序逐个遍历元素的接口api ConcreteIterator:为具体的迭代器,负责实现Iterator角色所声明的接口api Aggregate:意为集合,负责声明 阅读全文
posted @ 2021-02-18 00:10 小z同学 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 写了一个简单java工具类,用于验证码点阵打印+自动识别。为了提升识别精度和程序性能,此工具类是针对特定类型的验证码的,若要用于其他类型的验证码识别,需要做相应调整。 文章分两部分演示了此java工具类如何识别静态验证码图片和动态验证码gif。 一、静态验证码图片识别 输入验证码: 程序运行结果: 阅读全文
posted @ 2020-11-19 23:15 小z同学 阅读(1075) 评论(0) 推荐(0) 编辑
摘要: 题意:要求开6条线程计算累加1 → 10000000 难点:如何获取子线程的执行结果并聚合 思路一 生产者-消费者 经典模型: 多个生产者负责生产(累加)作业 生产者将生产结果存入共享仓库中 消费者(主线程)从共享仓库中取出结果 /** * 多线程计算累加数 */ public class Accu 阅读全文
posted @ 2020-11-13 22:57 小z同学 阅读(974) 评论(0) 推荐(0) 编辑