动态规划算法问题(经典找零案例)

问题: 给定数组arr,arr中的所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim代表要找的钱数,求换钱有多少种方法。 暴力搜索方法 思路分析 若给定arr={5, 10, 25, 1},aim=1000。 用0张5元的货币...

浅析ClassNotFoundException与NoClassDefFoundError

最近接到电话面试中,面试官问我ClassNotFoundException与NoClassDefFoundError有什么样的区别,至于前者经常遇到,我还是能答上一些,至于后者,完全没遇到过啊,只好瞎编了,都忘记当时是怎么回答的。然后面试官问我他们都会出现在哪些情况,ClassNotFou...

ThreadLocal 详解

ThreadLocal是什么   早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。      当使用ThreadLocal维护变量时,ThreadLocal为每个使用...

Java NIO 教程详解

英文原文地址:http://tutorials.jenkov.com/java-nio/index.html 中文来源地址:http://ifeve.com/java-nio-all/ 作者:Jakob Jenkov 译者:郭蕾 校对:方腾飞 本文由老H博客整理修订 [TOC] Java NIO(New IO)是一个可以替代标准Java IO API的IO...

Java中的Copy-On-Write容器

Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个...

ConcurrentLinkedQueue的实现原理分析

引言 在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式:一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来...

深入剖析 ConcurrentHashMap

术语定义 术语 英文 解释 哈希算法 hash algorithm 是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。  哈希表 hash table 根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字...

HashMap实现原理及源码分析

哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对...

Java类加载机制-类加载器(ClassLoader)与双亲委派模型

Java虚拟机类加载过程中的“加载”阶段第一步就是“通过一个类的全限定名来获取描述此类的二级制字节流”,这个动作由Java虚拟机外部实现,以便让应用程序自己决定如何去获取所需要的类,实现这个动作的模块叫做“类加载器”。 类与类加载器 类加载器虽然只用于...

Java类加载机制-类加载的时机和过程

类加载的时机 类从被加载到虚拟机开始,到卸载为止,生命周期如图所示: 其中,加载、验证、准备、初始化、卸载这五个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班的开始(开始不代表完成,通常为交叉混合运行),而解析阶段不一定:它在某...

Top