- 博客(67)
- 收藏
- 关注
原创 【JAVA 并发】四 死锁种类
死锁银行家算法 这是一个著名的避免死锁的算法,是由Dijstra首先提出来并加以解决的。[背景知识]一个银行家如何将一定数目的资金安全地借给若干个客户,使这些客户既能借到钱完成要干的事,同时银行家又能收回全部资金而不至于破产,这就是银行家问题。这个问题同操作系统中资源分配问题十分相似:银行家就像一个操作系统,客户就像运行的进程,银行家的资金就是系统的资源。[问题的描述]一
2017-03-18 02:06:41
785
死锁是两个甚至多个线程被永久阻塞时的一种运行局面,这种局面的生成伴随着至少两个线程和两个或者多个资源。在这里我已写好一个简单的程序,它将会引起死锁方案然后我们就会明白如何分析它。死锁范例ThreadDeadlock.javapackagecom.journaldev.threads; public classThreadDeadlock { public sta
2017-03-18 00:20:52
161
原创 【JAVA 并发】三 死锁范例与分析
避免 死锁的方法就是不要写 顺序不一致加锁 的代码如果 必须要写顺序不一致的加锁的代码,可以采用 trylock 方法,避免程序一直等待。预防 死锁可以采用finddebug插件去扫描代码发现死锁。处理 死锁,如果运行中的程序已经发生死锁,据我所知没有别的办法,只能停止程序,代价非常大,所以要尽量避免死锁。
2017-03-17 21:59:27
299
原创 【JAVA 并发】二 死锁
死锁死锁:在计算机系统中有很多一次只能由一个进程使用的资源,如打印机,磁带机,一个文件的I节点等。在多道程序设计环境中,若干进程往往要共享这类资源,而且一个进程所需要的资源不止一个。这样,就会出现若干进程竞争有限资源,又推进顺序不当,从而构成无限期循环等待的局面。这种状态就是死锁。简单理解死锁:我们先看看这样一个生活中的例子:在一条河上有一座桥,桥面较窄,只能容纳一辆汽车通过,无法让两辆汽车并行。如果有两辆汽车A和B分别由桥的两端驶上该桥,则对于A车来说,它走过桥面左面的一段路(即占有了桥的一部分资源
2017-03-17 16:37:40
350
原创 【JAVA 并发】一 同步访问共享的可变数据
不要使用Thread.stop()因为unsafe , 要停止一个线程 , 建议的做法一个线程轮询 一个boolean域 . public class StopThread{ private static boolean stopRequested ; public static void main(String[] args) throws InterruptedException{
2016-09-05 16:04:45
396
原创 【JAVA】十二 接口 与 四种内部类
类的访问权限 可变性最小化不要提供任何会修改对象状态的方法我可以工地不会被扩展使所有域都是final使所有的域都成为怎么私
2016-09-05 09:40:29
473
原创 【JAVA】十一 对象通用方法
Java超级父类 Object 的非final方法equalshashCodetoString clonefinalize都有着明确通用的约定 general contract , 因为他们被设计成为 override . equals什么情况下覆盖equals方法类的每个实例本子上都是唯一 不关心类是否提供逻辑相等的测试功能 超类已经覆盖了equals方法,从超类继承过来的行为对
2016-09-01 14:10:13
319
原创 idea maven 部署服务器tomcat
软件及版本idea 版本 IntelliJ IDEA 2016.1.2 maven 版本 Apache Maven 3.2.5 tomcat 版本 Apache Tomcat 8.0.36Tomcat 配置远程服务器中就一个tomcat 由要用到tomcat用户的权限,修改文件 /conf/tomcat-users.xml 并添加用户 admin <role rolename="adm
2016-08-31 17:20:28
669
原创 【JAVA】十 创建对象与销毁对象
一 静态工厂代替构造方法static factory method 是一个返回类实例的静态方法来看看jdk的boolean类的封装 public static Boolean valueOf(boolean b) { return (b ? TRUE : FALSE); }优势有不同的名称不必每次调用都创建一个新的对象可以返回原对象的任何子集参数对象实例时代码更
2016-08-23 16:03:21
1781
原创 【数据结构与算法】十九 二叉树遍历 BFS 广度优先 迭代算法
【数据结构与算法】十九 二叉树遍历 BFS 广度优先 迭代算法DFS - Depth First Search 迭代算法上一篇我们DFS , 深度优先算法往往使用栈来实现 , 通过栈来保存过去走过的路线 , 这样将可以回来继续知道路线, 接下来我们来使用一个队列来实现一个广度优先的算法 , 对一个二叉树逐层遍历 , 逐层遍历在【数据结构与算法】十六 二叉树遍历 BFS 广度优先 递归算法中也介绍过
2016-07-13 00:22:14
563
原创 【数据结构与算法】十八 二叉树遍历 DFS 深度优先 迭代算法
【数据结构与算法】十八 二叉树遍历 DFS 深度优先 迭代算法DFS - Depth-First-Search 迭代算法栈是实现递归的最常用的结构,利用一个栈来记下尚待遍历的结点或子树,以备以后访问,可以将递归的深度优先遍历改为迭代的算法。非递归前序遍历:遇到一个结点,就访问该结点,并把此结点推入栈中,然后下降去遍历它的左子树。遍历完它的左子树后,从栈顶托出这个结点,并按照它的右链接指示的地址再去
2016-07-08 23:56:03
977
原创 【数据结构与算法】十六 二叉树遍历 Breadth-First-Search 广度优先
【数据结构与算法】十六 二叉树遍历 Breadth-First-Search 广度优先Breadth-First-Search 广度优先 , 广度优先遍历是连通图的一种遍历策略。因为它的思想是从一个顶点V0开始,辐射状地优先遍历其周围较广的区域,故得名。 以层为单位进行遍历.如图 广度优先遍历与深度优先遍历的区别在于:广度优先遍历是以层为顺序,将某一层上的所有节点都搜索到了之后
2016-06-21 22:07:23
188
原创 【JAVA】九 TreeMap
【JAVA】九 TreeMapJDK APIjava.utilClass TreeMapTreeMap定义public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, java.io.SerializableTreeMap属性 //使用comparator
2016-06-18 16:34:54
389
原创 【JAVA】八 HableMap HashTable
【JAVA】八 HableMap HashTable 本篇作为hashmap hashtable的一个小的简单介绍,我透过下面的表格大致的分析了这两个类, 如果你想深入了解的话可以点击下方的连接,会跳转到相应的介绍,那里介绍的更加详细些 . 功能 HashMap HashTable 接口 Map, Cloneable, Serializable Map, Clonea
2016-06-04 19:21:58
461
原创 【JAVA】七 JAVA Dictionary 一 HashTable
【JAVA】七 JAVA Dictionary 一 HashtableDK APIjava.util Class DictionaryDirect Known Subclasses:HashtableDictionaryabstract class Dictionary 定义 ,如果看过我关于Map的介绍,那么你一定不陌生,此处的方法在jav
2016-06-04 19:09:38
520
原创 【JAVA】四 JAVA集合 Collection ArrayList LinkedList
JAVA Collection ArrayList LinkedList
2016-05-24 00:06:06
4338
原创 【JAVA】三 语法
package com.cn.mark.test;public class Grammar { public Grammar() { } public static void main(String[] args) { } /** * 对象销毁前调用的方法 */ protected void finalize() {
2016-05-14 04:14:55
175
原创 【JAVA】一 对象传参
【JAVA】三 JAVA 单例在 jdk 1.2 及其以后,引入了强引用、软引用、弱引用、虚引用这四个概念。Strong Reference 强引用java标准的引用方式,表示GC从 Root Set 开始向下扫描,可以找到对应的 Strong Reference。 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出Ou
2016-05-10 23:50:21
941
原创 【数据结构与算法】十六 二叉树遍历 BFS 广度优先 递归算法
【数据结构与算法】十五 二叉树遍历 Breadth-First-Search 广度优先
2016-05-01 18:11:11
1091
原创 JAVA 泛型
泛型。意思是Tree这个类里面需要用到另外一个类,但是又不能确定要用到的那个类的具体类型,所以暂时用T来代替,当具体的程序知道要用到的那个类型是什么的时候就用那个类型来代替T,就ok了。例如我需要实例化一个Tree类,需要用到的那个类是String,那么我就可以这么来实例化Tree();泛型就是指任意类型比如 HashMap K,V> 你用的时候 你可以将K,
2016-05-01 00:27:27
144
原创 【数据结构与算法】十五 平衡二叉树
平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树。1962年,G.M. Adelson-Velsky 和 E.M. Landis发明了这棵树,所以它又叫AVL树。平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过1,如果插入或者删除一个节点使得高度之差大于1,就要进行节点之间的旋转,将二叉树重新维持在一个平衡状态。这个方案
2016-04-30 10:56:10
212
原创 【Redis】二 JAVA redis 3.0.7连接
JAVA redis 3.0.7连接官方 https://github.com/xetorthio/jedisHow do I use it?You can download the latest build at: http://github.com/xetorthio/jedis/releasesOr use it as a maven dependency:pom.xml<dependenc
2016-04-24 18:45:04
494
原创 JAVA redis 连接
JAVA redis 连接redis 官方 http://redis.io/clients#javaJedishttps://github.com/xetorthio/jedis Jedis is a blazingly small and sane Redis java client.Jedis was conceived to be EASY to use.Jedis
2016-04-23 17:36:51
134
原创 KMP
(1)next[0]= -1 意义:任何串的第一个字符的模式值规定为-1。 (2)next[j]= -1 意义:模式串T中下标为j的字符,如果与首字符 相同,且j的前面的1—k个字符与开头的1—k 个字符不等(或者相等但T[k]==T[j])(1≤kj1≤k)。如:T=”abCabCad”
2016-04-08 21:47:51
118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人