- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 sleep和wait的区别
1、这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。 sleep是Thread的静态类方法,谁调用的谁就进入睡眠状态(所以这个sleep的名字取得还真好),即使在a线程里调用了b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。2、sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步
2015-11-28 15:22:47 409
原创 Thread类和Runable接口
在java中可有两种方式实现多线程:一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。Thread实现多线程代码如下: package org.thread.demo; class M
2015-11-28 15:02:41 414
原创 多线程实现死锁(Java实现)
学习Java比较久了,对多线程也比较熟悉,前段时间面试的时候,面试官问我:请你写一段多线程实现死锁的代码。说实话当时有点儿蒙,以前做的都是如何避免死锁,现在要产生死锁,还真没写过,不过回忆一下产生死锁的四大必要条件,要写出这段代码还是不难的。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不
2015-11-18 10:15:14 395
原创 一个异常引发的集合多线程思考
对于Hashtable和HashMap,相信每个学习Java的人都不会陌生,这两个集合在用法上并没有什么不同,但在使用环境上却有很大差别:(1)区别,这两个类主要有以下几方面的不同: Hashtable和HashMap都实现了Map接口,但是Hashtable的实现是基于Dictionary抽象类 在HashMap中,null可以作为键,这样的键只有一个;可以有一个
2015-11-17 21:04:51 870
原创 一个异常引发的对Hashtable和HashMap的思考
对于Hashtable和HashMap,相信每个学习Java的人都不会陌生,这两个集合在用法上并没有什么不同,但在使用环境上却有很大差别:(1)区别,这两个类主要有以下几方面的不同: Hashtable和HashMap都实现了Map接口,但是Hashtable的实现是基于Dictionary抽象类 在HashMap中,null可以作为键,这样的键只有一个;可以有一个
2015-11-17 20:28:56 786
原创 字符串之拼接
对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。给定一个字符串数组strs,同时给定它的大小,请返回拼接成的串。测试样例:["abc","de"],2"abcde"解析:可以将该题转换成字符串排序的问题,主要思路是将字符串数组某种规则进行由小到大排序,一次拼接排序后的字符串即可得到结果,那具体使用什么排序规则就需要
2015-11-14 18:51:45 1500
原创 字符串之逆序(java实现)
对于一个字符串,请设计一个算法,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将这些部分逆序。给定一个原字符串A和他的长度,请返回逆序后的字符串。测试样例:"dog loves pig",13返回:"pig loves dog"解析:首先将整个字符串逆序,然后将空格分割成的各个子串逆序,即可得到结果,该方法时间复杂度O(n),空间复杂度
2015-11-14 18:44:46 2083
原创 字符串之字符串平移(java实现)
对于一个字符串,请设计一个算法,将字符串的长度为len的前缀平移到字符串的最后。给定一个字符串A和它的长度,同时给定len,请返回平移后的字符串。 测试样例:"ABCDE",5,3解析:解题思路比较简单,假设字符串长度为n,则首先分别逆序0-(len-1)和len-(n-1)的子串,然后见整个字符串再次逆序,即可得到结果。算法实现:(以下代码本人亲自测试无误)import
2015-11-14 18:35:18 2285
原创 几种常见排序算法的Java代码实现
首先通过下面一张图了解排序算法的分类:下面是八种排序算法的Java代码实现:一.插入排序简单插入排序[java] view plaincopy"code" class="java">"font-size:18px;">public class InsertSort { /**
2015-11-01 14:17:23 716
原创 常用排序算法的性能分析及应用场景
一.排序算法分类1.插入排序法 直接插入排序,希尔排序(面试最常问)2.交换排序 冒泡排序,快速排序(面试最常问)3.选择排序 直接选择排序,堆排序(面试最常问)4.归并排序 归并排序5.基数排序当然排序算法博大精深,肯定不止以上几种,本人只列出了几个最为经典的,也是最常用的排序算法。二.空间、时间复杂度、稳定性
2015-11-01 13:39:15 11004 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人