公子姓王

导航

2019年5月28日 #

Java容器解析系列(13) WeakHashMap详解

摘要: 关于 其实没有太多可说的,其与 大致相同,区别就在于: 1. 对每个 的引用方式为弱引用; 关于 4种引用方式,参考 "java Reference" 网上很多说 弱引用指向 Entry,这种说法是完全错误的 2. 在 被回收时,对应的value并没有回收,只有在调用 的方法时才会回收 ; 具体请看 阅读全文

posted @ 2019-05-28 10:20 公子姓王 阅读(189) 评论(0) 推荐(0) 编辑

2019年5月27日 #

Java容器解析系列(12) LinkedHashMap 详解

摘要: 继承自 ,除了提供 的功能外, 还是维护一个双向链表(实际为带头结点的双向循环链表),持有所有的键值对的引用: 1. 这个双向链表定义了迭代器的迭代顺序,默认按 迭代; 2. 也可以在构造时设置为按照 方式(访问顺序)迭代(from least recently accessed to most r 阅读全文

posted @ 2019-05-27 21:22 公子姓王 阅读(227) 评论(0) 推荐(0) 编辑

2019年5月24日 #

Java容器解析系列(11) HashMap 详解

摘要: 本篇我们来介绍一个最常用的 结构—— 关于HashMap,关于其基本原理,网上对其进行讲解的博客非常多,且很多都写的比较好,所以.... 这里直接贴上地址: 关于 算法: "Hash算法" "Hash时取模一定要模质数吗?" 关于HashMap: "深入Java集合学习系列:HashMap的实现原理 阅读全文

posted @ 2019-05-24 19:13 公子姓王 阅读(176) 评论(0) 推荐(0) 编辑

2019年3月17日 #

Java泛型之自限定类型

摘要: 在《Java编程思想》中关于泛型的讲解中,提到了自限定类型: 作者说道: 这就像两面镜子彼此照向对方所引起的目眩效果一样,是一种无限反射。 类接受泛型参数 ,而 由一个边界限定,这个边界就是拥有T作为其参数的 接下来,作者用了近3页的纸来进行解释这个问题,且语言极其晦涩难懂(可能是翻译的问题),但是 阅读全文

posted @ 2019-03-17 01:12 公子姓王 阅读(563) 评论(0) 推荐(0) 编辑

2018年12月16日 #

java Reference

摘要: 相关讲解,参考: "Java Reference 源码分析" "Java Reference详解" Reference: ReferenceQueue: SoftReference: WeakReference: PhantomReference: 阅读全文

posted @ 2018-12-16 17:43 公子姓王 阅读(223) 评论(0) 推荐(0) 编辑

2018年11月24日 #

Thread类源码解析

摘要: 源码版本:jdk8 其中的部分论证和示例代码: " Java_Concurrency " 类声明: 本身实现了 接口 :任务,《java编程思想》中表示该命名不好,或许叫Task更好; Thread:线程,执行任务的载体; 构造方法: 构造时,可以指定线程组,线程运行任务Runnable对象,线程名 阅读全文

posted @ 2018-11-24 12:45 公子姓王 阅读(1126) 评论(0) 推荐(0) 编辑

2018年11月21日 #

程序 进程 线程的区别与联系

摘要: 首先,关于这三个的 定义 及 联系 ,我自己的简单理解: 程序(Program) :为了完成特定功能,一组计算机指令的集合,是一个 静态 概念; 进程(Process) :运行中的程序实例,操作系统进行 资源分配和调度 的基本单位,一个 程序 在运行时,至少有一个进程; 线程(Thread) :进程 阅读全文

posted @ 2018-11-21 13:50 公子姓王 阅读(375) 评论(0) 推荐(0) 编辑

2018年11月8日 #

树 内部/外部结点 深度/高度 满二叉树/完全二叉树

摘要: 最近在复习树的过程中,发现不同的教材和公开课对于树的一些基本概念定义不一,个人原来的理解也混乱; 这里对这些做一下记录,并从这些定义中选取使用更广泛或更合理的定义作为后续学习依据,避免懵逼; node:翻译为 还是 ? 在《数据结构与算法分析·C语言描述》一书中,将node翻译为节点; 《大话数据结 阅读全文

posted @ 2018-11-08 17:03 公子姓王 阅读(4029) 评论(0) 推荐(0) 编辑

2018年11月6日 #

链表 头插法 尾插法 为什么要有头结点

摘要: 学过链表的应该都知道向链表中插入元素存在两种插入方式: 头插法 :数据插入链表后,作为链表的第一个元素; 尾插法 :数据插入链表后,作为链表的最后一个元素; 本篇博客的重点在于 为什么要有头结点 关于头结点和头指针的概念,请参考 "关于链表中头指针和头结点的理解" 为什么要有头结点,在网上找了半天, 阅读全文

posted @ 2018-11-06 21:55 公子姓王 阅读(2057) 评论(0) 推荐(0) 编辑

2018年10月15日 #

Java容器解析系列(10) Map AbstractMap 详解

摘要: 前面介绍了 和`Queue java Collection Map`,这一分支的类图结构如下: 这里为什么不先介绍Set相关:因为很多Set实现类是通过对应的Map来实现,使用Map中key不能重复的特性,往Set中add元素的本质就是Map的put(),这里先介绍Map,后续介绍Set的时候再做具 阅读全文

posted @ 2018-10-15 09:17 公子姓王 阅读(440) 评论(0) 推荐(0) 编辑