摘要: 1、死锁定义:死锁是进程死锁的简称,是两个或两个以上进程无限期地等待永远都不会发生的条件,系统处于停滞状态。 注:死锁不仅可发生在硬件资源上,由于设计不当,也有可能发生在软件资源的使用上。 2、产生死锁的必要条件 在系统中,如果以下4个问题同时成立,死锁就会发生 (1)互斥条件:必须有一个资源以非共 阅读全文
posted @ 2017-06-08 14:52 chump 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 1、进程的概念 进程是操作系统实现并发执行的重要手段,也是操作系统为程序提供的重要运行环境抽象。 进程最根本的属性是动态性和并发性。以下是从不同角度对进程的解释: a、进程是程序的一次执行 b、进程是可以与其他计算并发执行的计算 c、进程是一个程序程序及其数据在处理器上顺序执行时发生的活动 d、进程 阅读全文
posted @ 2017-06-08 14:51 chump 阅读(7743) 评论(0) 推荐(1) 编辑
摘要: 1、算法思想:将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增加1的有序表。 假设待排序的数据是数组A[1….n]。初始时,A[1]自成1个有序区,无序区为A[2….n]。在排序的过程中,依次将A[i] (i=2,3,….,n)从后往前插入到前面已排好序的子数组A[1,…,i-1]中 阅读全文
posted @ 2017-06-06 20:36 chump 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 1、算法思想:临近的数字两两进行比较,按照从小到大或从大到小的顺序排列,这样排列一次后最大的或最小的数字被拍到最后。然后继续排序直到倒数第二位时结束。 2、代码示例: (1)直接冒泡 public void sort(int[] list,int size){ (2)正宗冒泡 public void 阅读全文
posted @ 2017-06-06 19:53 chump 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 1、排序算法思想:从未排序的序列中找出最小的元素放到首位,之后再从剩余序列中找出最小的元素放到第二个位置......一次类推,直到所有元素都已排序完成。 2、代码示例: public void sort(int[] list,int size){ 3、复杂度分析:时间复杂度:第一次循环比较N次,第二 阅读全文
posted @ 2017-06-06 19:52 chump 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 散列冲突的解决办法: 1.开放地址法 (1)线性探测法: 就是一个公式: H=(H0+D)%m m:散列表的长度。D:一个增长的序列:1,2,3..........m-1 。 H0就是准备存入的Hash(key)。H:不冲突的散列码对应的位置。 假如散列表长为5,那么10%5=0,10这个值对应的散 阅读全文
posted @ 2017-06-05 17:20 chump 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 1、String类型的字符串对象是不可变的,一旦String对象创建后,包含在这个对象中的字符系列是不可以改变的,直到这个对象被销毁。 2、StringBuilder和StringBuffer类型的字符串是可变的,不同的是StringBuffer类型的是线程安全的,而StringBuilder不是线 阅读全文
posted @ 2017-06-05 14:56 chump 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 集合中线程安全的类:vector,stack,Hashtable,enumeration,除此之外均是非线程安全的。 java中true ,false , null在java中不是关键字,也不是保留字,它们只是显式常量值,但是你在程序中不能使用它们作为标识符。 其中const和goto是java的保 阅读全文
posted @ 2017-06-05 14:55 chump 阅读(138) 评论(0) 推荐(0) 编辑
摘要: Vector也是基于数组实现的,是一个动态数组,其容量能自动增长。 它的很多实现方法都加入了同步语句,因此是线程安全的,(相对安全,有些情况还是要加入同步语句来保证线程安全的)可以用于多线程环境。 Vector没有实现Serializable接口,因此它不支持序列化,实现了Cloneable接口,能 阅读全文
posted @ 2017-06-05 14:53 chump 阅读(136) 评论(0) 推荐(0) 编辑