Elson的博客

学无止境~

数据结构(Queue) — Queue 综述

一、概述 队列 是一种特殊的线性表,只允许在表的前面(队头)进行删除操作,而在表的后面(队尾)进行插入操作。即最先插入的元素最先被删除;因此队列又称为 先进先出(FIFO) 的线性表。 还有一种数据结构是 栈,它的特点是 后入先出(FILO),即最先进入的元素最后才出来。 二、类图 ...

2018-05-31 15:18:39

阅读数:86

评论数:0

数据结构(List) — LinkedList 源码分析

一、概述 二、类图 三、源码分析 一、概述 版本: JDK 1.8 public class LinkedList<...

2018-05-23 09:17:46

阅读数:39

评论数:0

数据结构(List) — ArrayList 源码分析

AAAA

2018-05-17 16:08:26

阅读数:60

评论数:0

数据结构(Map) — HashMap 源码分析

一、概述 参考: HashMap源码注解 之 静态工具方法hash()、tableSizeFor()(四) HashMap与HashTable(二)-HashMap原理与实现 二、类图 三、源码分析

2018-06-24 15:47:54

阅读数:23

评论数:0

数据结构(List) — ArrayQueue 源码分析

一、概述 二、类图 三、源码分析 四、小结 一、概述 版本: JDK1.8 ArrayQueue 是一个循环队列(Queue),继承了 AbstractList 抽象类,内部通过数组的方式来实现。 二、类图 三、源码分析 public cl...

2018-05-18 15:27:17

阅读数:66

评论数:0

Collection — 概述(编辑中)

一、概述 二、Collection 三、Map 一、概述 二、Collection 三、Map

2018-05-11 14:09:06

阅读数:31

评论数:0

数据结构(应用) — 约瑟夫环问题 (Josephus problem)(编辑中)

问题 方案 问题 描述: N个人编号从 1 到 N,围成一个圆圈,从第 K 个人开始报数 ( 默认 K= 1 ),数到 M 的人退出。接着下一个人又从1开始报数,数到 M 的人退出;以此类推。 问1:最后剩下的人的编号是多少? 问2:程序运行时间...

2018-04-17 15:24:11

阅读数:25

评论数:0

数据结构 — 表(编辑中)

一、概述 1.1 基本概念 1.2 耗时统计 1.3 参考 二、表ADT 一、概述 1.1 基本概念 抽象数据类型 (ADT:abstract data type):带有一组操作的一些对象的集合; 表ADT: 通俗讲,一般按顺序排好的元素集合就是表。 1...

2018-04-14 12:49:43

阅读数:23

评论数:0

JVM — JVM面试问题(编辑中)

问题来源于网络 Java的虚拟机的面试内容主要包括三部分:GC、类加载机制、内存。   GC 什么时候一个对象会被GC? 为什么要在这种时候对象才会被GC?   GC策略都有哪些分类? 这些策略分别都有什么优劣势?都适用于什么场景? 给你举个实际的场景,让你选择一个GC策略?   你如...

2018-04-05 21:31:56

阅读数:48

评论数:0

JVM — 垃圾回收机制

一、概述 二、如何判断对象是否被引用 2.1 引用计数算法 2.2 可达性分析算法 2.3 方法区的回收 三、垃圾收集算法 3.1 标记 - 清除算法 3.2 复制算法 (解决“标记 - 清除算法”的效率问题) 3.3 标记 - 整理算法 3.4 分代收集算法 四、内存分配 五、对象...

2018-04-05 13:43:19

阅读数:38

评论数:0

JVM — JVM内存模型

一、内存模型图 二、运行时数据区 2.1 方法区 2.2 运行时常量池 2.3 堆 (Heap) 2.4 虚拟机栈 (Stack) 2.5 本地方法栈 2.6 程序计数器 2.7 直接内存 一、内存模型图 从上面这幅图中,我们可以知道JVM在执行Java程序...

2018-04-04 22:14:21

阅读数:56

评论数:1

JVM — 类加载机制(编辑中)

一、概述 1.1 概念 1.2 参考 二、类的加载流程 三、类加载的过程 3.1 加载阶段 3.2 验证阶段 3.3 准备阶段 3.4 解析阶段 3.5 初始化阶段 四、类加载器 一、概述 1.1 概念 类的加载机制:虚拟机将描述类的数据从 Class...

2018-04-04 10:54:50

阅读数:46

评论数:0

JVM — 概述

一、概述 二、JVM基本结构图 一、概述 本系列从以下三方面去了解JVM: 《类加载机制》 《JVM内存模型》 《垃圾回收机制》 《JVM面试问题》 二、JVM基本结构图 ...

2018-04-03 20:54:50

阅读数:37

评论数:0

设计模式 — 静态代理模式

静态代理 静态代理 0. 简介 1. 类图 2. 实例 3. 代理模式、装饰模式、门面模式的区别 0. 简介 代理模式有两种形式:静态代理、动态代理。 设计模式 — 动态代理模式 1. 类图 分析: 1. 代理类和被代理类必须实现同一个接口Subject ; 2...

2018-03-14 15:13:59

阅读数:29

评论数:0

设计模式 — 动态代理模式

动态代理 动态代理 0. 简介 1. 类图 2. 示例 3. 源码分析 0. 简介 代理模式有两种形式:静态代理、动态代理。 1. 类图 图片来源网络 2. 示例 使用JDK中的Proxy类实现动态代理类的创建; Proxy.newProxyIn...

2018-03-14 14:26:29

阅读数:63

评论数:0

LeetCode — Remove Element(删除给定元素)

Remove Element 需求: Given an array and a value, remove all instances of that valuein-place and return the new length. (给定“已排序”的数组,去除数组中给定的数据...

2018-01-05 11:34:50

阅读数:41

评论数:0

LeetCode — Remove Duplicates from Sorted Array

Remove Duplicates from Sorted Array 需求 Given a sorted array, remove the duplicates in-place such that each element appear only once and return...

2018-01-05 11:19:44

阅读数:49

评论数:0

LeetCode — Merge Two Sorted Lists

Merge Two Sorted Lists 需求: Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the n...

2018-01-05 10:43:20

阅读数:41

评论数:0

Java内存区域(笔记)

一、运行时数据区域 程序计数器 虚拟机栈(栈) 本地方法栈 堆 方法区 运行时常量池 直接内存 注: - 1,2,3属于线程隔离的数据区; - 4,5属于所有线程共享的数据区; 1.1 程序计数器一块较小的内存空间,可看作是当前线程缩执行的字节码的行号指示器,每...

2017-12-27 14:49:36

阅读数:57

评论数:0

数据库分库

参考一分钟掌握数据库垂直拆分用uid分库,uname上的查询怎么办?以下是对上面两篇文章的小结:常见的数据库分库方法: 水平切分 垂直拆分 水平切分 以某个字段为依据(例如uid),按照一定规则(例如取模),将一个库(表)上的数据拆分到多个库(表)上,以降低单库(表)大小,达到提升性能的目的的...

2017-11-08 22:25:56

阅读数:61

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭