摘要: 文章是对邓俊辉老师数据结构教程的总结,部分图片资料来自邓俊辉老师的教学PPT 建议阅读前先阅读参考文章的第二,三文章,总结得非常好! 文章部分代码和图片来自参考文章的第二,三文章!! 阅读前提几个问题吧 ,帮助思考 为什么需要平衡二叉树 AVL 需要两次旋转的操作为什么不直接分解为左旋和右旋,还要LR RL 呢 AVL 有什么局限性 二叉查找... 阅读全文
posted @ 2019-01-29 22:07 float123 阅读(11051) 评论(1) 推荐(0)
摘要: 此篇文章半原创是对参考资料中的知识点进行总结,欢迎评论指点,谢谢! 部分知识点总结来自R大的帖子,下文有参考资料的链接 概述 G1 收集是相比于其他收集器(可见 上一篇文章),可以独立运行,同时做到了并发和并行。下面看一下它是如何实现的。 之前介绍的几组垃圾收集器组合,都有几个共同点: 年轻代、老年代是独立且连续的内存块; 年轻代... 阅读全文
posted @ 2019-01-22 17:02 float123 阅读(3082) 评论(0) 推荐(1)
摘要: 收集器组合章节来自第一篇参考文章,非原创,作者总结地非常好! 分代收集相关概念来自参考文章第二篇,非原创 第二篇参考资料的文章质量很高,推荐阅读! 分代收集(Generational Collection)相关概念 在Java8的HotSpot虚拟机中一共包括了5个垃圾收集器,它们每一个都是基于分代 阅读全文
posted @ 2019-01-14 09:03 float123 阅读(3179) 评论(0) 推荐(0)
摘要: > _本文部分照片和代码分析来自文末参考资料_ > > _java8中的concurrenthashmap的方法逻辑和注解有些问题,建议看最新的JDK版本_ > > _建议阅读 concurrenthashmap 源码前过一遍源码前面的注释,参考资料第二篇的博客有注释翻译_ ## 问题 - Conc 阅读全文
posted @ 2019-01-11 15:56 float123 阅读(491) 评论(0) 推荐(0)
摘要: 对象的创建 概述 下面简要介绍创建对象的几个重要步骤 : 检查能否在常量池定位到一个类的符号引用,并检查这个符号代表的类是否已被加载,解析和初始化过。如果没有则执行类加载的操作。(即是说对象的引用放在方法区里的) 堆中分配内存,分配有两种方式 指针碰撞(Bump the Pointer)--中间分条线一边已分配,一边未分配 空闲列表(free list)--已分配的空间... 阅读全文
posted @ 2019-01-08 08:56 float123 阅读(421) 评论(0) 推荐(0)
摘要: ScheduledThreadPoolExecutor概述 ScheduledThreadPoolExecutor下文简称 STPE. 1 public class ScheduledThreadPoolExecutor 2 extends ThreadPoolExecutor 3 implements ScheduledExecu... 阅读全文
posted @ 2019-01-04 15:45 float123 阅读(185) 评论(0) 推荐(0)
摘要: Java 环境 Java 运行过程 下面几张图,我们可以了解到 Java 这门语言是如何进行运行的。 java文件通过编译器编译成class文件,然后在虚拟机中转化为机器语言运行在机器上。 上图展示了java 在不同平台的实现。下图则是大意视图。 JDK 和 JRE JVM:Java Virtual Machine(Java虚... 阅读全文
posted @ 2019-01-03 09:05 float123 阅读(236) 评论(0) 推荐(0)
摘要: 问题 : 线程池中的 coreSize 和 maxSize 的作用分别是什么? 未执行的线程池存在在哪种数据类型,为什么使用这种类型的数据结构 ThreadPoolExecutor概述 ThreadPoolExecutor 下文简称 TPE ,我们使用它都是从Executror 这个类中的方法 : 1 public static ExecutorService ne... 阅读全文
posted @ 2018-12-30 18:23 float123 阅读(299) 评论(0) 推荐(0)
摘要: 阅读前阅读以下参考资料,文章图片或代码部分来自与参考资料 概览 一张图了解一下java锁. 注 : 阻塞将会切换线程,切换内核态和用户态,是比较大的性能开销 各种锁 为什么要设置锁的等级 jdk1.6对锁的实现引入了大量的优化,如自旋锁、适应性自旋锁、锁消除、锁粗化、偏向锁、轻量级锁等技术来减少锁操作的开销。锁主要存在四中状态,依次是:... 阅读全文
posted @ 2018-12-28 19:45 float123 阅读(230) 评论(0) 推荐(0)
摘要: 问题 : ArrayBlockQueue 和 LinkedBlockQueue 的区别 两者的实现又是怎么样的 应用场景 BlockingQueue 概述 blockingQueue 是个接口,从名字上看就可以知道它是个阻塞队列,里面定义了增删改查的方法。四种不同的方法用于不同的场景中使用: 1、抛出异常; 2、返回特殊值(null 或 true/false,取决于具体的操作)... 阅读全文
posted @ 2018-12-27 16:24 float123 阅读(278) 评论(0) 推荐(0)