- 浏览: 293235 次
- 性别:
- 来自: 北京
最新评论
-
liwei985:
xiaoy81 写道putIfAbsent是原子性的,多线程去 ...
ConcurrentMap.putIfAbsent(key,value) 用法讨论 -
xiaoy81:
putIfAbsent是原子性的,多线程去操作Locale l ...
ConcurrentMap.putIfAbsent(key,value) 用法讨论 -
DEMONU:
楼主找到撒原因了吗
故障:Kafka异步发送致使所有相关线程阻塞 -
wxl24life:
aliahhqcheng 写道觉得接口常量和工具类常量比较,唯 ...
ActiveMQ 源码学习 2:从 CommandTypes 谈常量接口反模式 -
aliahhqcheng:
觉得接口常量和工具类常量比较,唯一的好处就是不用写public ...
ActiveMQ 源码学习 2:从 CommandTypes 谈常量接口反模式
文章列表
本文来源于实际项目。
项目需求:某段逻辑需要过滤注册用户,而每时每刻都可能会有新的注册用户加入进来。注册用户的存在与否是通过查询数据库表中是否存在记录判断的。由于不希望频繁的读数据库表,所以考虑定时从数据库加载一份用户列表到内存里,这样可以减少读库的次数并且可以提高查询的效率。
过滤用户逻辑代码简单抽象成下面的测试代码。
package test.java;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.u ...
先看一段代码:
public class Locale {
private final static Map<String, Locale> map = new HashMap<String,Locale>();
public static Locale getInstance(String language, String country,
String variant) {
//...
String key = some_string;
Locale locale = map.get(key);
if (locale == ...
本文副标题:解决 NoSuchMethodError 异常
java.lang.NoSuchMethodError: org.slf4j.MDC.getCopyOfContextMap()Ljava/util/Map
-------------------------------------------------------
今天在一台机器上配置完 spring-activemq 后,可以无障碍的运行测试代码。但是,完全相同的代码提交后在另一台机器死活跑不通。主要的错误堆栈信息如下
Caused by: java.lang.NoSuchMethodError: org.sl ...
Effective Java 这本书的价值有多高想必搞Java的人都应该了解。我把它当做一本工具书,在工作之余拿出来读,收获很大。你会发现这本书几乎涵盖了 Java 语言规范的所有知识点,很多语言相关的问题你都可以在这里找到一段解释。印象最深的是,上周末在读某源码时被它里面到处使用的 static member class 吸引住了,然后纠结为什么要用 static,在网上各种搜罗资料,最后在 StackOverflow 上某个问答下看到原来在Effective Java这本书的 Item 22 就是讲 Java 的 集中 member class 的。我心想,这本书我几乎每天都会翻两眼的,怎么 ...
翻译前序:
最近一年越来越多的尝试阅读英文书籍,很少读中文版的主要原因是,读着别人翻译的文字总是习惯性的觉得拗口。一直想知道将英文文章翻译成中文是一种什么样的感觉,今晚试着翻完了 Paul Graham 主页上的 PROGRAMMING FAQ [1]。最大的体会是,翻译真心是个苦差事,因为你不仅需要理解原文还要想方设法组织好语言用词。所以说,中文版书籍翻译的差不要紧,咱可以不读,但是还是应该尊重译者的劳动成果少点骂声的。
[1] http://paulgraham.com/pfaq.html
瞎翻,轻拍 -_-!!!
----------------------- ...
平时接触 Java 文件操作的机会不多,所以对 Java 文件读写相关的API不太熟悉。今天在项目里处理一段逻辑时需要按行读文件,所以在这里简单的把代码贴一下。以后有时间再细细研究相关API。
按行读文件的操作包含3个步骤:
1. 用FileInputStream打开一个文件
2. InputStreamReader逐个读取 stream 中的字符
3. 调用BufferedReader#readLine()逐行取出
代码如下(省略异常处理)
InputStream fis;
BufferedReader br;
String line;
fis = ne ...
某次 svn 提交前对工程中的文件做了修改、删除、移动等操作,提交时出现了下面的错误提示框:
Transaction is out of date
svn: Commit failed (details follow):
svn: 过期: ”/your-path“在事务“6148-1”
解决办法是:
在 Eclipse 的 Package-Explorer 视图下,选中工程文件夹,右键->Team->更新
之后再提交就OK了。
参考来源:
[1] How do I avoid “svn: Out of Date:” problems? http://stackoverflo ...
Spring版本2.5.5,JUnit 版本 4.8.1,使用了Spring TestContext 的 SpringJUnit4ClassRunner。一直使用这个版本的JUnit,在写简单的测试时不会抛错,直到今天开始尝试写规范的JUnit测试代码,抛出了如下的错误:
java.lang.NoClassDefFoundError: org/junit/Assume$AssumptionViolatedException
at org.springframework.test.context.junit4.SpringMethodRoadie.runTestMethod( ...
下载了 maven 工具,准备在 cmd 下使用 mvn 构建 maven 工程时,提示连接出错。花了几分钟 bing 了一番(google 服务最近不稳定,发现 bing 是个不错的替代品~ 对了,用 bing 的时候关键词如果是英文,记得尽量使用英文搜索),最后还是 StackOverFlow [1] 上找到了答案。
解决方法很简单,只需要修改 maven 路径下的 conf/settings.xml 文件。
默认的 proxy 代理配置(apache-maven-2.2.1)如下:
<!-- proxies
| This is a list of pr ...
按照官方文档入门向导[1],走到第二步就出问题了。
$ git push origin master
按照提示输入 username 和 password 后,反复报同一个错误:
“fatal: https://github.com/xxx/helloworld.git/info/refsnot found:did
you run git update-server-info on the server?”
是的,我尝试了各种方法试图解决这个错误,通过 google 找到 stackoverflow 上的问答页[2],反复检查 url、username、p ...
简单的说,TDB是Jena提供的两个subsystem之一,另外一个叫做SDB。TDB使用triple store的形式对RDF数据提供持久性存储(persistent store), SDB则支持使用传统的关系数据库存储RDF数据。详细介绍可以参考Apache Jena页面http://jena.staging.apache.org/ ...
最近在研究的开源工具包下提供了几个command line工具,通常在/bin目录下提供的是shell script,为了多系统下运行的方便(主要是win),通常也会提供/bat目录,其中包含了与/bin下shell script对应重写后的.bat批处理文件。针对shell script ...
Win7+Ubuntu双系统,对硬盘重新分区后启动不了,提示 grub rescue>
起因是这样的:
C盘空间太小,想从D盘分配出一块空间以对C盘进行扩充。要实现容量扩充,现有的分区软件需要按照如下的步骤展开:
(1)在D盘前free掉一块空间S
(2)在S上创建新的分区(格式同C盘)
(3)Merge C & S
我先做了前两个步骤,重启电脑的时候出现了前面的问题。
解决方法参考了 「Ubuntu启动问题以及Grub Rescue修复方法」,顺利解决。我把解决方案总结到这里:
先说一下为什么会导致上面的引导错误。道理很简单,原来ubuntu位于 ...
- 2011-12-08 22:04
- 浏览 1218
- 评论(0)
下面主要以Java中一维数组为例,说明Java中数组的用法。
先看一段代码:
public class ArrayTest
{
private int[] arr;
public ArrayTest(int[] a){
int i;
for(i = 0; i < a.length; i++){
arr[i] = a[i]; //对成员数组初始化赋值
}
}
public static void ...
- 2011-07-20 21:01
- 浏览 1018
- 评论(0)
Huffman算法是一种用来构造最优前缀码(Huffman编码)的贪心算法。Huffman编码是一种被广泛应用而且有效的数据压缩技术,它主要针对字符文件的压缩。
Huffman算法可能产生具有不同编码的最优前缀码,这句话需要这么理解:最优 ...
- 2011-07-04 19:15
- 浏览 2002
- 评论(0)