- 浏览: 467257 次
- 性别:
- 来自: 杭州
最新评论
-
ty1972873004:
sunwang810812 写道我运行了这个例子,怎么结果是这 ...
Java并发编程: 使用Semaphore限制资源并发访问的线程数 -
lgh1992314:
simpleDean 写道请问,Logger.setLevel ...
Java内置Logger详解 -
sunwang810812:
我运行了这个例子,怎么结果是这样的:2号车泊车6号车泊车5号车 ...
Java并发编程: 使用Semaphore限制资源并发访问的线程数 -
jp260715007:
nanjiwubing123 写道参考你的用法,用如下方式实现 ...
面试题--三个线程循环打印ABC10次的几种解决方法 -
cb_0312:
SurnameDictionary文章我没看完,现在懂了
中文排序
文章列表
在本篇文章中,主要是通过豆瓣API实现获取图书信息的小功能。
一. 豆瓣API能干什么?
参考链接:[url]http://www.douban.com/service/ [/url]
豆瓣API是豆瓣为第三方开发人员提供的编程接口。利用豆瓣API,你可以在你的网站或程序中使 ...
在平时做项目时,可能有这样的业务需求:页面或界面上展示的数据保留小数点后两位。
为了达到这样的展示效果,本文列举了几个方法:
1. 使用java.math.BigDecimal
2. 使用java.text.DecimalFormat
3. 使用java.text.NumberFormat
4. 使用java.util.Formatter
5. 使用String.format
... ... 另外可以自己实现或者借用封装好的类库来实现,在这篇文章中就不一一列举了。
本文给出上述5种方法的简单实现。
代码如下:
import java.math.BigDecimal;
import ...
本文简单记录一下一个简单功能:递归搜索指定目录下具有某个后缀名的所有文件。
在JDK 1.7之前,我会使用类似如下的办法:
package my.utils.algorithm.files;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class FileFinder {
public static void main(String[] args) {
FileFinder finder = new FileFinder();
List&l ...
本文记录三道多线程编程题。
第一道:
有四个线程1、2、3、4。线程1的功能就是输出A,线程2的功能就是输出B,以此类推......... 现在有四个文件file1,file2,file3, file4。初始都为空。
现要让四个文件呈如下格式:
file1:A B C D A B....
file2:B C D A B C....
file3:C D A B C D....
file4:D A B C D A....
程序如下:
package my.test;
import java.io.FileWriter;
import java.io.IOException;
...
题目:一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。
解决的方法有很多种,比如:
使用synchronized, wait和notifyAll
使用Lock 和 Condition
使用Semaphore 等。
本文采用Lock 和 Condition来实现。
程序源代码:
package my.thread.test;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.co ...
逛网页的时候,发现阿里巴巴2014校园招聘笔试最后一道题目
http://blog.csdn.net/qingsong3333/article/details/11910771
题目:在黑板上写下50个数字:1至50.在接下来的49轮操作中,每次做如下动作:选取两个黑板上的数字a和b,擦去,在黑板 ...
最近发现公司有份笔试试卷中有道多线程的题目:有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕上循环打印10次ABCABC…
这个最早好像是迅雷的面试题目吧,看到了然后就想重温一下这个题目的解决方法。
在本文中,给出了五种这个题目的解决方法:
使用sleep
使用synchronized, wait和notifyAll
使用Lock 和 Condition
使用Semaphore
使用AtomicInteger
下面依次给出每种解决方案的代码:
使用sleep
package my.thread.test;
/**
* @author Eric
*/
publ ...
本文将简单介绍用于线程协作的Condition, 并给出一个例子,实现一个多线程题目--有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕上循环打印10次ABCABC…
。
Condition是从JDK 1.5开始有的。API是这么描述的:
以上是Condition接口定义的方法,await()对应于Object#wait(),signal()对应于Object#notify(),signalAll()对应于Object#notifyAll()。
Condition是与Lock结合使用的,通过Lock.newCondition()方法能够创建与Lock绑定的Condition ...
前面两篇博文介绍了数独终盘生成的两种方法。
Swing数独游戏(一):终盘生成之矩阵转换法 ==> http://mouselearnjava.iteye.com/blog/1941483
Swing数独游戏(二):终盘生成之随机法 ==> http://mouselearnjava.iteye.com/blog/1941693
拥有了数独终盘之后,我们需要在这个终盘上挖去一些数字,然后就能产生数独难题。
在这篇博文中将简单介绍一下“挖洞”法生成数独难题的方式,并采用随机挖洞的方式,对同一份数独终盘产生不同难度的数独难题。
“挖洞”的方式可以有多种实现,一般有四种方式:
参 ...
在上一篇博文介绍了用矩阵转换法来产生数独终盘。关于矩阵转换法产生终盘矩阵请参考如下的文章。
Swing数独游戏(一):终盘生成之矩阵转换法 ==> http://mouselearnjava.iteye.com/blog/1941483
本篇博文将对数独游戏随机产生数独终盘展开说明。
用什么样的随机方法?
读过一些文章,关于随机产生数据终盘比较流行的是将拉斯维加斯算法与回溯法相结合。比如下面的文章都有提及:
http://zhangroup.aporc.org/images/files/Paper_3485.pdf
http://wenku.baidu.com/view/f9e3 ...
数独(すうどく,Sudoku)是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。
参考:http://baike.baidu.com/link?url=ePXUCvpBaRKBkEA3pVfOkg3m-NBozO6a4GDS0N3E5_gK1nnJCDzd5O-YL1w7c5S3
最近手机上安装了数独游戏,算是重拾该游戏了。为了更加了解游戏生成的原理,自己在闲暇时间做了一个Swing版的数独游戏,将会写几篇博文记录一些内容。 内容大致如下:
Swing数独游戏(一):终盘生成之矩 ...
Java泛型支持通配符,可以单独使用 '?' 来表示任意类型,也可以使用extends关键字表示某一个类或接口的子类,也可以使用super关键字表示某一个类,接口的父类型。
本文对读写操作的分析得出什么时候该使用extends 和 super。
<? super T>使“读”受到限制
先来看一个例子:
比如要实例化一个List<? super Integer>的numberList ,我们可以使用Integer, Number和Object来完成,如:
List<? super Integer> numberList = new ArrayList& ...
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
泛型的好处是在编译的时候检查类型安全,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。
泛型小结将从如下几个方面入手: 通配符号的使用将放入下一篇博文中介绍。
泛型的修饰范围
使用&实现多重限制
类型擦除
<? super T>, <? ...
String对象的split方法提供了字符串分割的功能。split方法的参数可以是正则表达式,这样的话可以支持相对复杂的字符串分割。
比如:
"Welcome;to,the Java:World".split("[;|,| |:]")将得到由"Welcome" "to" "the" "Java"和"World"组成的字符串数组。
1. String对象的split方法里面采用了Pattern的split方法实现,所以,正则表达式中的某些符号需要正则转 ...
Java中提供了好几个类,可以让我们方便的实现随机数等功能,这些类有java.util.Random, java.util.UUID 以及JDK 7 新引入的java.util.concurrent.ThreadLocalRandom等。
本文将通过这些类对平时使用的实例进行简单的总结,这些实例的功能大致可以分成四个方面:
1. 随机产生N个指定范围内[Min,Max)的随机数
/**
* 使用java.util.Random产生一个长度为expectedNum的随机数组,随机数的范围[min,max)
*/
public int[] gerateRandomArrayWit ...