自定义博客皮肤

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JVM内存分配及管理

本篇文章主要是介绍JVM的垃圾回收算法和JVM的内存分配机制。 一.垃圾搜集算法 JVM中的内存分配机制 垃圾回收算法有标记-清除算法,标记-整理算法和复制算法,JVM使用分代收集算法来回收JVM分配的内存空间,分代收集算法分为新生代和老年代,主要收集JVM内存模型中的堆内存,其中新生代使用复...

2018-10-22 17:29:36

阅读数 49

评论数 0

java并发学习之线程安全的计数器

线程安全的计数器实现原理简介: 在java中volatile关键字可以保证共享数据的可见性,它会把更新后的数据从工作内存刷新进共享内存,并使其他线程中工作内存中的数据失效,进而从主存中读入最新值来保证共享数据的可见性,实现线程安全的计数器通过循环CAS操作来实现。就是先获取一个旧期望值值,再比...

2018-10-21 13:23:11

阅读数 37

评论数 0

java并发编程学习之死锁

死锁的介绍: 锁是一个非常有用的工具,运行场景非常多,因为它使用起来非常简单,而且易于理解。但同时它也会带来一些困扰,比如死锁问题。比如有两个线程A和B,运行都需要两个资源a,b。A获取了a资源,B获取了b资源,接着A去请求b资源,B去请求a资源,两个线程互相阻塞产生死锁。 代...

2018-10-20 21:39:23

阅读数 39

评论数 0

JVM内存区域划分

运行时数据区域: Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户进程的启动和结束而建立和销毁。下面是各区域的具体划分。 程序计数器 程序计数器是一块较小的...

2018-10-19 12:35:14

阅读数 26

评论数 0

HashMap和HashTable的区别

本篇博客主要来比较一下hashmap和hashtable的区别。 1.首先来看下继承结构: HashMap public class HashMap<K,V> extends AbstractMap<K,V> ...

2018-10-18 15:24:58

阅读数 19

评论数 0

堆排序

堆排序介绍: 堆排序可以分为两个阶段。在堆的构造阶段,我们将原始数组重新组织安排进一个堆中;然后在下沉排序阶段,我们从堆中按顺序取出所有元素并得到排序结果。 1.堆的构造,一个有效的方法是从右到左使用sink()下沉函数构造子堆。数组的每个位置都有一个子堆的根节点,sink()对于这些子堆也适...

2018-10-18 14:25:38

阅读数 25

评论数 0

二叉堆实现优先队列

适用范围: 许多应用程序都需要处理有序的元素,但不一定要求它们全部有序,或是不一定要一次就将它们排序。很多情况下我们会搜集一些元素,处理当前键值最大的元素等操作。 优先队列实现原理: 1.数据结构二叉堆能够很好地实现优先队列的基本操作。在二叉堆的数组中,每个元素都要保证大于等于另两个特定位...

2018-10-18 12:54:39

阅读数 31

评论数 0

java集合框架源码解析之HashMap

摘要 HashMap简介 HashMap数据结构 HashMap源码解析 HashMap简介: HashMap是一个散列表,它的底层实现是链表数组,存储的结果为键值对,key-value形式,Key允许有一个null,value允许有多个null。 通过hash算法来快...

2018-10-11 22:24:32

阅读数 22

评论数 0

java集合框架源码解析之TreeMap源码解析

asdrgfvewargerw

2018-10-07 23:01:25

阅读数 65

评论数 0

letcode 根据字符出现频率排序

题目描述: 给定一个字符串,请将字符串里的字符按照出现的频率降序排列。 示例 1: 输入: “tree” 输出: “eert” 解释: 'e’出现两次,'r’和’t’都只出现一次。 因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案。 ...

2018-10-05 23:57:31

阅读数 56

评论数 0

letcode 同构字符串

题目描述: 给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。 示例 1: 输入: s = “egg”, t = ...

2018-10-04 13:35:08

阅读数 21

评论数 0

创造者模式

本篇博客来简要的讲解下创造者模式 创造者模式原理 创造者模式适用场景 代码示例 原理介绍: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。用户只需要给出指定复杂对象的类型和内容 建造者模...

2018-10-02 18:01:09

阅读数 324

评论数 0

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