2015年7月6日
摘要: 上周五和周末,工作忙里偷闲,在看java cocurrent中也顺便再温故了一下Thread.interrupt和java 5之后的LockSupport的实现。在介绍之前,先抛几个问题。Thread.interrupt()方法和InterruptedException异常的关系?是由interru... 阅读全文
posted @ 2015-07-06 23:39 bendantuohai 阅读(309) 评论(0) 推荐(0) 编辑
  2015年7月5日
摘要: 本章主要讲述最简单的背包问题,从如何建立状态方程到如何根据状态方程来实现代码,再到如何优化数据结构,让我们对动态规划的建立与求解认识更加透彻题目:有N件物品和一个容量为V的背包。放入第i件物品的费用是Ci,得到的价值是Wi。求解将哪些物品装入背包可使价值和最大。分析:(一)建立状态方程这是最基础的背... 阅读全文
posted @ 2015-07-05 16:53 bendantuohai 阅读(243) 评论(0) 推荐(0) 编辑
  2015年7月2日
摘要: 从01背包问题理解动态规划 01背包问题具体例子:假设现有容量10kg的背包,另外有3个物品,分别为a1,a2,a3。物品a1重量为3kg,价值为4;物品a2重量为4kg,价值为5;物品a3重量为5kg,价值为6。将哪些物品放入背包可使得背包中的总价值最大? 这个问题有两种解法,动态规划和贪婪算... 阅读全文
posted @ 2015-07-02 19:55 bendantuohai 阅读(552) 评论(0) 推荐(0) 编辑
  2015年7月1日
摘要: 五大常用算法之二:动态规划算法一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求... 阅读全文
posted @ 2015-07-01 15:47 bendantuohai 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 五大常用算法之一:分治算法分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如... 阅读全文
posted @ 2015-07-01 15:46 bendantuohai 阅读(146) 评论(0) 推荐(0) 编辑
  2015年6月29日
摘要: 前面的章节主要谈谈原子操作,至于与原子操作一些相关的问题或者说陷阱就放到最后的总结篇来整体说明。从这一章开始花少量的篇幅谈谈锁机制。上一个章节中谈到了锁机制,并且针对于原子操作谈了一些相关的概念和设计思想。接下来的文章中,尽可能的深入研究锁机制,并且理解里面的原理和实际应用场合。尽管synchron... 阅读全文
posted @ 2015-06-29 16:35 bendantuohai 阅读(169) 评论(0) 推荐(0) 编辑
摘要: [-]part1 从AtomicInteger开始part 2 数组引用的原子操作part3 指令重排序与happens-before法则part 4 CAS操作part1 从AtomicInteger开始从相对简单的Atomic入手(java.util.concurrent是基于Queue的并发包... 阅读全文
posted @ 2015-06-29 16:16 bendantuohai 阅读(313) 评论(0) 推荐(0) 编辑
摘要: http://my.oschina.net/leejun2005/blog/172328 阅读全文
posted @ 2015-06-29 10:15 bendantuohai 阅读(220) 评论(0) 推荐(0) 编辑
  2015年6月28日
摘要: ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。但是在经过一次惨痛的面试经历之后,我觉得必须深入研究它的实现。面试中被问到读是否要加锁,因为读写会... 阅读全文
posted @ 2015-06-28 21:54 bendantuohai 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。下面是本文的目录大纲: 一.final关键字的基本用法 二.深... 阅读全文
posted @ 2015-06-28 20:09 bendantuohai 阅读(204) 评论(0) 推荐(0) 编辑