上一页 1 2 3 4 5 6 7 8 ··· 14 下一页
摘要: 设计模式文章 中介者模式 代理模式 抽象工厂模式详解 —— head first 设计模式 装饰者模式 适配器模式 策略模式 观察者模式 建造者模式 (Builder) 项目实例 假设你有一家 pizza 店,你有很多种 pizza,要在系统中显示你所有 pizza 种类。实现这个功能并不难,使用普 阅读全文
posted @ 2020-09-13 10:43 huansky 阅读(768) 评论(0) 推荐(0) 编辑
摘要: 设计模式文章 中介者模式 代理模式 抽象工厂模式详解 —— head first 设计模式 装饰者模式 适配器模式 策略模式 观察者模式 建造者模式 (Builder) 装饰器模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模 阅读全文
posted @ 2020-09-06 20:11 huansky 阅读(613) 评论(0) 推荐(1) 编辑
摘要: 概论 PriorityQueue 类在 Java1.5 中引入并作为 Java Collections Framework 的一部分。PriorityQueue 是基于优先堆的一个无界队列,这个优先队列中的元素可以默认自然排序或者通过提供的 Comparator(比较器)在队列实例化的时排序。 优先 阅读全文
posted @ 2020-08-30 16:31 huansky 阅读(588) 评论(1) 推荐(1) 编辑
摘要: 什么是双指针 双指针,指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向(快慢指针)或者相反方向(对撞指针)的指针进行扫描,从而达到相应的目的。 换言之,双指针法充分使用了数组有序这一特征,从而在某些情况下能够简化一些运算。 在 LeetCode 题库中,关于双指针的问题 阅读全文
posted @ 2020-08-23 16:59 huansky 阅读(14361) 评论(0) 推荐(4) 编辑
摘要: 学过计算机网络的同学,都知道滑动窗口协议(Sliding Window Protocol),该协议是 TCP协议 的一种应用,用于网络数据传输时的流量控制,以避免拥塞的发生。该协议允许发送方在停止并等待确认前发送多个数据分组。由于发送方不必每发一个分组就停下来等待确认。因此该协议可以加速数据的传输, 阅读全文
posted @ 2020-08-16 17:38 huansky 阅读(122782) 评论(7) 推荐(11) 编辑
摘要: 一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅 阅读全文
posted @ 2020-08-09 20:12 huansky 阅读(4743) 评论(0) 推荐(0) 编辑
摘要: 最近做的一个需求和文件存储有关系。由于之前没有系统梳理过,对文件存储方面的知识一直很懵懂。趁着周末有时间,赶紧梳理一波。 这首从网上找到的一张图,很好的概括了外部存储和内部存储。 下面我们再来具体介绍相关知识和内容。 内部存储 内部存储,位于data/data/包名/路径下 是否需要用户权限:否 是 阅读全文
posted @ 2020-07-26 15:25 huansky 阅读(1547) 评论(0) 推荐(1) 编辑
摘要: CmProcess 是 github 上的一个解决跨进程通信的开源项目,整体代码清晰简洁,可以通过分析其源码可以了解跨进程通信的本质。 阅读全文
posted @ 2020-07-19 10:08 huansky 阅读(1010) 评论(0) 推荐(1) 编辑
摘要: 概述 一个大型的应用系统,往往需要众多进程协作,进程(Linux进程概念见附1)间通信的重要性显而易见。本系列文章阐述了 Linux 环境下的几种主要进程间通信手段。 进程隔离 进程隔离是为保护操作系统中进程互不干扰而设计的一组不同硬件和软件的技术。这个技术是为了避免进程A写入进程B的情况发生。 进 阅读全文
posted @ 2020-06-20 19:55 huansky 阅读(8933) 评论(0) 推荐(4) 编辑
摘要: 本文是 http 入门文章,主要是介绍了http概念,发展史,以及和 http 相关的各种协议(tcp/ip, https等)和概念(CDN,浏览器) 阅读全文
posted @ 2020-06-14 17:39 huansky 阅读(1289) 评论(0) 推荐(3) 编辑
摘要: NestedScrollView 是用于替代 ScrollView 来解决嵌套滑动过程中的滑动事件的冲突。作为开发者,你会发现很多地方会用到嵌套滑动的逻辑,比如下拉刷新页面,京东或者淘宝的各种商品页面。 那为什么要去了解 NestedScrollView 的源码呢?那是因为 NestedScroll 阅读全文
posted @ 2020-05-31 20:04 huansky 阅读(3973) 评论(0) 推荐(0) 编辑
摘要: Gradle 的插件有三种打包方式: 构建脚本:插件逻辑写在 build.gradle 中,适用于逻辑简单的任务,但是该方式实现的插件在该构建脚本之外是不可见的,只能用于当前脚本。 buildSrc项目:根据语言插件代码放在 rootProjectDir/buildSrc/src/main/groo 阅读全文
posted @ 2020-05-23 14:05 huansky 阅读(3492) 评论(0) 推荐(0) 编辑
摘要: 概论 在 深度优先搜索原理与实践(java)文章介绍了深度优先搜索算法的理论和实践。本文将介绍与其原理类似的广度优先搜索算法。 广度优先搜索(也称宽度优先搜索,缩写 BFS,以下采用广度来描述)是连通图的一种遍历算法这一算法也是很多重要的图的算法的原型。Dijkstra 单源最短路径算法和 Prim 阅读全文
posted @ 2020-05-04 22:49 huansky 阅读(10839) 评论(1) 推荐(3) 编辑
摘要: 本文首先通过一个例子讲解了深度优先搜索的原理,然后给出了算法的通用框架,接着根据通用框架总结了算法的实现一般规则,使用者按照该规则即可写出深度优先搜索代码。最后通过三个题目,结合文章总结的规则指导你如何应用到实践中。 阅读全文
posted @ 2020-05-03 23:47 huansky 阅读(4222) 评论(2) 推荐(2) 编辑
摘要: 概论 线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决 阅读全文
posted @ 2020-04-07 23:49 huansky 阅读(4734) 评论(2) 推荐(3) 编辑
摘要: 本文基于 ReentrantLock 非公平锁的独占锁源码来分析了 AQS 的内部实现原理。在获得同步锁时,同步器维护一个同步队列,获取状态失败的线程都会被加入到队列中并在队列中进行自旋;移出队列(或停止自旋)的条件是前驱节点为头节点且成功获取了同步状态。在释放同步状态时,同步器调用 tryRelease(int arg) 方法释放同步状态,然后唤醒头节点的后继节点。 阅读全文
posted @ 2020-04-06 22:26 huansky 阅读(1006) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍了线程的基础知识,主要知识点包括:线程和进程的异同点,线程的五种生命周期,创建线程方式,线程中断机制和其常用的方法。 阅读全文
posted @ 2020-03-04 15:17 huansky 阅读(982) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-02-14 20:39 huansky 阅读(939) 评论(0) 推荐(0) 编辑
摘要: 通过本文知道什么是GC,哪些对象需要进行回收,如何进行GC,GC 回收机制的变化等 阅读全文
posted @ 2020-02-05 16:37 huansky 阅读(1339) 评论(0) 推荐(0) 编辑
摘要: Java 虚拟机中定义的 Class 文件格式。每一个 Class 文件都对应着唯一一个类 或接口的定义信息,但是相对地,类或接口并不一定都得定义在文件里(譬如类或接口也可以通过 类加载器直接生成)。本章中,我们只是通俗地将任意一个有效的类或接口所应当满足的格式称为 “Class 文件格式”,即使它 阅读全文
posted @ 2020-01-31 20:50 huansky 阅读(724) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 14 下一页