`
yonlist
  • 浏览: 84444 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
使用多线程容易碰到这样的问题,主线程需要等待各个任务线程完成后再继续(如释放资源等)。   常见的方法是在线程中使用计数器记录完成的线程数量,并且需要另外的一个线程轮询判断是否已经全部完成。   方案一:     final AtomicInteger counter = new AtomicInteger(); public void testRun() { final int threadNum = 10; // 开启任务线程 for (int i = 0; i < threadNum; i++) { new Thread(ne ...
什么是dbunit以及为什么要使用它?   dbunit是一个基于junit扩展的数据库测试框架。它提供了大量的类对与数据库相关的操作进行了抽象和封装,虽然在80%的情况,你只需使用它极少的api。它通过使用用户自定义的数据集以及相 ...
日志文件生成在工程目录下经常可以省去很多麻烦。   网上参考了几篇文章,并根据实际运用找到了一个最简单的办法:   log4j.appender.R.File=${user.dir}/log/run.log   "user.dir"就是工程所在的目录。   简单吧..
大家可能碰到过这样的问题,用properties文件保存配置信息,并按顺序迭代。   但Properties是继承Hashtable的,无法按顺序迭代。   解决办法如下:   public class OrderedProperties extends Properties { private Vector keys; public OrderedProperties() { super(); keys = new Vector(); } public Enumeration propertyNames() { return ke ...
最近用了下大名鼎鼎的quartz,基本能满足调度需求的变化了。   关于时间表达式,转载一下备忘。   转载自:http://www.blogjava.net/xmatthew/archive/2009/02/15/253864.html   格式: [秒] [分] [小时] [日] [月] [周] [年]  序号 说明   是否必填  允许填写的值 允许的通配符   1  秒  是  0-59    , - * /  2  分  是  0-59    , - * /  3 小时  是  0-23   , - * / ...
原文链接:http://www.cnblogs.com/raymond19840709/archive/2008/06/26/1230289.html   jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的, 并不 依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件。 另外需要说明的是,这套API对图形和图表的支持很有限,而且 仅仅识别PNG格式。 使用如下: 搭建环境 ...
原文链接:http://www.aqee.net/2011/02/25/5am-wake-up-is-it-so-crazy-to-wake-up-early/ 我已经不记得确切的开始日期了,大约是一年,我启动了一个“新实验”:做一个早起的鸟儿。 我以前的作息习惯 跟很多开发人员一样,我过去是个夜猫子。每天晚上熬夜做自己的项目,每天早上都经历痛苦的起床过程。 这个作息时间很不正常,连续2、3天编程到深夜,第4天9点就睡,然后又是这样3天,第4天9点睡。 我需要在早上7点到8点间醒来。我所说的醒来是Nathalie把我弄醒,把我拖下床。
最近在写C#客户端发送int值给Java服务端的时候出现了问题。搞了半天终于解决了。问题原因在于字节数组顺序上。在C#中一般会使用BitConverter.getBytes(i)方法获取字节数组。现在我们自己处理下: // 转换为Java格式的字节数组 static byte[] int2bytes(int n) { byte[] result = new byte[4]; result[0] = (byte)((n & 0xFF000000) >> 24); ...
今天尝试了下基于equinox的web开发,需要加入如下依赖包(eclipse 3.5.2): javax.servlet; org.eclipse.equinox.common; org.eclipse.equinox.http.jetty; org.eclipse.equinox.http.servlet; org.eclipse.osgi; org.eclipse.osgi.services; org.mortbay.jetty.server; org.mortbay.jetty.util; 应该是不能再少了
关于文章中涉及的两个杜撰概念:一、绘图器:众所周知,Java GUI以paint进行绘图,以repaint进行图像刷新,而完成repaint及paint这一连贯过程中所用到绘图组件,我将其称为绘图器。就我个人的体会,绘图器的调用时机应始终处于repaint之后paint之前,即通过repaint触发刷新后执行,当其中的具体逻辑完成其对应的图像绘制后,再通过统一接口将其图像插入paint中,为了匹配需要,绘图器应始终以接口方式实现。二、监听器:这里所说的监听器,并不是特指某个Listener组件,而是包括Java游戏中所需的所有监听器集合。由于Java游戏中很可能会切换不同的游戏模式,而不同 ...
http://en.wikibooks.org/wiki/Java_Persistence/What_is_new_in_JPA_2.0%3F   http://www.ibm.com/developerworks/cn/websphere/techjournal/0909_col_sutter/0909_col_sutter.html
最近碰到个小麻烦,如何从bundle获取其绝对路径。   解决办法如下:   public void start(BundleContext context) throws Exception { String bundleName = context.getBundle().getSymbolicName(); log.debug("bundleName:" + bundleName); String bundlesInfo = System.getProperty("osgi.bundles"); int bundle ...
  在window下面可用如下代码:   Java代码  InetAddress inet = InetAddress.getLocalHost();  
进制转换备忘,转载自:http://blog.csdn.net/szwangdf/archive/2008/07/01/2601941.aspx   十进制转成十六进制:      
为纪念PAC-MAN诞生30年,google主页logo换成了吃豆人小游戏,js做的   google.pacman || function () { var a = true, e = false, g = {}, i = [1, 4, 2, 8], l = {0:{axis:0, increment:0}, 1:{axis:0, increment:-1}, 2:{axis:0, increment:+1}, 4:{axis:1, increment:-1}, 8:{axis:1, increment:+1}}, m = [0, 7, 17, 32], n = [{x:5, y ...
Global site tag (gtag.js) - Google Analytics