小知了的博客

神仙本是凡人做,只怕凡人心不坚


  • 首页

  • 标签

  • 分类

  • 归档

  • 阅读清单

  • 关于我

  • 搜索

Java集合框架(3)-HashMap设计与实现

发表于 2020-11-14 | 分类于 JDK源码 , Java集合框架
序言​ HashMap在面试中被频繁问到,从我入行(2015年)问到了现在,我一直思考,就一个Map的实现有什么好问的,曾经对问我HashMap的面试官忍不住吐槽:难道你们没别的问的了?但是不可避免这个问题的出现频率,因为这体现你的“Java基础”。于是为了回答好这个问题,我从网上 ...
阅读全文 »

CompletionService设计与实现

发表于 2020-11-13 | 分类于 JDK源码 , Java并发框架
序言使用ExecutorService时候,我们只是向其中不断提交任务,然后通过Future获取get任务结果,但是有时候get需要等待,虽然可行,但是比较繁琐,可以有更好的方式,比如CompletionService实现了将完成的任务放在完成队列中,使得获取任务结果可以向队列一样通过take和po ...
阅读全文 »

FutureTask设计与实现

发表于 2020-11-11 | 分类于 JDK源码 , Java并发框架
序言FutureTask是Future和Runnable的实现,ThreadPoolExecutor在执行任务的时候,执行的是FutureTask. 传统Runnable接口实现的任务只有执行方法run,并没有任务取消,执行超时等功能,并且Runnable并没有提供任务状态的抽象,其实每个任务都是有 ...
阅读全文 »

ThreadPoolExecutor设计与实现

发表于 2020-11-10 | 分类于 JDK源码 , Java并发框架
​ 线程池是Java并发包中的重要部分,也是高并发程序必不可少的类库,但是线程池技术本身比较复杂,不同语言对其实现提供的抽象也不一样,所以本文以Java线程池为例,分析它的设计与实现,以及它所带我们的抽象。 序言我对线程池的认识经历了以下三个阶段 1 会使用Executors的API, ...
阅读全文 »

Java集合框架(2)-抽象实现骨架

发表于 2020-11-09 | 分类于 JDK源码 , Java集合框架
概述接口定义类型,抽象类实现骨架。抽象类不支持的实现方法便是细节。这种技巧在JCF中是标配。一来替客户端提供如何实现一个接口的最直接的参考。二来帮助客户端以此实现功能更强的接口。如Guava的集合也是参考这种模式。 抽象实现抽象类的最重要分析是留下了哪些抽象方法,而留下的抽象方法是真正实现类的差异, ...
阅读全文 »

Java集合框架(1)-接口定义类型

发表于 2020-11-09 | 分类于 JDK源码 , Java集合框架
序言集合框架是任何语言的技术体现,是语言的综合使用的类库,大部分工作可以用集合完成,但是单独的看每一个集合实现类难以对集合框架产生一个宏观认识,所以需要从高层角度来看集合技术,本系列将分析集合框架的设计与实现。 集合设计包括接口,实现和算法三大核心功能。接口包括类型接口和迭代器接口,类型接口是Lis ...
阅读全文 »

AQS(AbstractQueuedSynchronizer) API分析

发表于 2020-11-08 | 分类于 JDK源码 , Java并发框架
AQS概述AbstractQueuedSynchronizer是Java用于替代 Synchronized+内置等待通知(wait/notify)+内置条件队列的抽象队列同步器,该同步器管理锁,条件变量(状态变量),条件谓词三元关系,从而技术上实现了锁,条件队列,等待通知,阻塞等同步语义。在JUC中 ...
阅读全文 »

面向对象设计的启发60条黄金法则

发表于 2020-09-01 | 分类于 翻译
本文翻译内容来自http://www.cs.uno.edu/~jaime/Courses/4210/heuristics.pdf ,主要是面向对象设计的启发。而这些checklist来自Arthur J. Riel的书Object-Oriented Design Heuristics总结的check ...
阅读全文 »

java.lang.OutOfMemoryError内存溢出

发表于 2020-08-16 | 分类于 JVM
对这个问题的深入理解,取决于对GC,内存本身的理解。终极问题。 内存,GC, 内存溢出指的是程序需要内存超出系统所有的内存,如果是正常情况调大jvm内存即可,如果是 Java内存区域分为这么几个区域 堆区:老年代,新生代 非堆:metaspace FullGC之后空间不足,内存没有回收。 Java ...
阅读全文 »

2020年尾声规划

发表于 2020-08-16 | 分类于 规划
2020年还有4个月就结束了,今年从疫情期间忙忙碌碌,时间过得飞快。想到了诸葛亮的诫子书一句话,年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及。觉得很惭愧,思想提高慢,能力提高慢,技术深度提高慢,希望制定以下计划来日益精进自我的技术。 经过思考以下几个点需要不断提高: 体系化思考,深度 ...
阅读全文 »
<i class="fa fa-angle-left"></i>1…345<i class="fa fa-angle-right"></i>
简单

简单

为学日益,为道日损

42 日志
35 分类
48 标签
© 2024 简单
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4
访问人数 总访问量