Fork me on GitHub
上一页 1 2 3 4 5 6 7 8 9 10 ··· 30 下一页
摘要: 系列文章:数据结构与算法系列——从菜鸟到入门 什么是堆? 堆数据结构是一种数组对象,它可以被视为一棵完全二叉树。树中每个节点与数组中存放该结点值的那个元素对应。树的每一层都是填满的,最后一层可能除外(最后一层从最结点的左子树开始填)。如果给定了某个结点的下标 i,那么其父结点为 PARENT(i)= 阅读全文
posted @ 2017-03-15 20:59 郑斌blog 阅读(2270) 评论(0) 推荐(0) 编辑
摘要: 系列文章:数据结构与算法系列——从菜鸟到入门 描述 快速排序是基于分治模式的,下面按分治模式来进行分析: 分解: 数组 A[p..r]被划分成两个(可能空)子数组,A[p..q-1]和 A[q+1..r],使得 A[p..q-1]中的每个元素都小于等于 A(q),也小于等于 A[q+1..r]中的元 阅读全文
posted @ 2017-03-15 12:19 郑斌blog 阅读(2469) 评论(0) 推荐(0) 编辑
摘要: 简介 什么是代理模式? 代理模式就是多一个代理类出来,代替原对象进行一些操作。比如说租房的中介、打官司的律师、旅行社,他们可以代替我们做一些事情,这就是代理。 代理模式的应用场景: 如果已有的方法在使用的时候需要对原有的方法进行改进,此时有两种办法:1. 修改原有的方法来做到改进。但这样违反了“对扩 阅读全文
posted @ 2017-03-07 12:03 郑斌blog 阅读(1226) 评论(1) 推荐(2) 编辑
摘要: 简介 信号量为多线程协作提供了更为强大的控制方法。也可以说,信号量是对锁的扩展。无论是内部锁 synchronized 还是重入锁 ReentrantLock,一次都只允许一个线程访问一个资源,而信号量却可以指定多个线程,同时访问某一个资源。 其构造函数如下: 常用方法: 应用场景 Semaphor 阅读全文
posted @ 2017-03-06 11:18 郑斌blog 阅读(1141) 评论(0) 推荐(0) 编辑
摘要: 简述 LockSupport 是一个非常方便实用的线程阻塞工具,它可以在线程内任意位置让线程阻塞。 和 Thread.suspend()相比,它弥补了由于 resume()在前发生,导致线程无法继续执行的情况。 和 Object.wait()相比,它不需要先获得某个对象的锁,也不会抛出 Interr 阅读全文
posted @ 2017-03-05 17:59 郑斌blog 阅读(1789) 评论(1) 推荐(0) 编辑
摘要: 简述 这两个操作就好比播放器的暂停和恢复。 但这两个 API 是过期的,也就是不建议使用的。 不推荐使用 suspend() 去挂起线程的原因,是因为 suspend() 在导致线程暂停的同时,并不会去释放任何锁资源。其他线程都无法访问被它占用的锁。直到对应的线程执行 resume() 方法后,被挂 阅读全文
posted @ 2017-03-05 16:59 郑斌blog 阅读(14272) 评论(0) 推荐(1) 编辑
摘要: 简述 ReentrantLock 是一个可重入的互斥(/独占)锁,又称为“独占锁”。 ReentrantLock通过自定义队列同步器(AQS-AbstractQueuedSychronized,是实现锁的关键)来实现锁的获取与释放。 其可以完全替代 synchronized 关键字。JDK 5.0 阅读全文
posted @ 2017-03-05 09:08 郑斌blog 阅读(7915) 评论(0) 推荐(0) 编辑
摘要: 概述 一个对象本身的内在结构需要一种描述方式,这个描述信息是以字节码的方法存储在方法区中的。Class 本身就是一个对象,都以 KB 为单位,如果 new Integer() 为了表示一个数据就占用KB级别的内存就有点不值了,下面讲解 JVM 是如何做的。为了表示对象的属性、方法等信息,不得不需要结 阅读全文
posted @ 2017-03-02 15:44 郑斌blog 阅读(10859) 评论(8) 推荐(5) 编辑
摘要: 持续更新系列。参考自Java多线程系列目录(共43篇)、《Java并发编程实战》、《实战Java高并发程序设计》。 基础Java多线程——过期的suspend()挂起、resume()继续执行线程;Java多线程——sychronized Java中Volatile关键字详解;Java中SynchronizedMap与ConcurrentHashMap的对比;Java中ThreadLocal的深入理解 阅读全文
posted @ 2017-02-23 22:18 郑斌blog 阅读(3008) 评论(0) 推荐(1) 编辑
摘要: 持续更新系列。 参考自《深入理解Java虚拟机》、《Java性能权威指南》、《分布式Java应用基础与实践》。 Java的内存结构 JVM内存结构——运行时数据区 JVM——代空间的划分 JVM——判断对象的死活 Java内存模型 Java中内存溢出与内存泄露 JVM——深入分析对象的内存布局 垃 阅读全文
posted @ 2017-02-21 20:49 郑斌blog 阅读(2186) 评论(0) 推荐(3) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 30 下一页