Java
iteye_15891
这个作者很懒,什么都没留下…
展开
-
在JNI中调用本地带结构体参数的函数
说起JNI,《The Java Native Interface -- Programmer's Guide and Specification》我认为是挺好的入门教程。浅显易懂,而且也附有参考。对很多问题和陷阱也进行了讲解和提示。可以在 Sun 的官网上免费下载到这本书,下载地址:http://java.sun.com/docs/books/jni/download/jni.pdf。但是...2008-07-27 16:28:00 · 736 阅读 · 0 评论 -
Java 类路径扫描
Java 中缺乏内建的类路径扫描机制。但是这个机制对于做框架的人来说很常用。下面的工具类从类路径下面的文件或者 JAR 路径中扫描包,可以实现我们需要的功能。实现是基于 Spring 3.1.11.RELEASE 版的 PathMatchingResourcePatternResolver 修改的。去掉了原版中 ANT * 号匹配的功能。依赖 Google Guava, Apache Common...原创 2015-07-15 15:02:26 · 514 阅读 · 0 评论 -
Java 下面如何模拟友元
Java 没有像 C++ 一样的友元。但是友元我认为是非常有用的。尤其是在设计 API 的时候,参见《Practical API Design》。友元可以帮助实现“clueless programming”(即无需考虑过多繁琐的细节就可以编程)。但是也容易被滥用。无论如何,我希望这个选择是在语言使用者手里。《Practical API Design》里提到了一种 Accessor 模式,可...原创 2011-02-16 02:13:31 · 390 阅读 · 0 评论 -
多层类结构的对象相等性
在 [i]Effective Java[/i] 中,Joshua Bloch 提到,如果一个可实例化的类定义了 equals 方法。另有一个子类继承它,也定义了额外一些属性,并且 equals 方法中需要使用这些新定义的属性进行相等性判断。那么就不可能保证 equals 语义的正确。相信看过 [i]Effective Java[/i] 的人当年读到这里时都会觉得丧气。就好像完美的世界突然有...2009-09-14 22:59:28 · 129 阅读 · 0 评论 -
精巧的状态机实现片段
[code="java"]public enum SniperState { JOINING { @Override public SniperState whenAuctionClosed() { return LOST; } }, BIDDING { @Override public SniperState whenAuctionClosed() { ...2010-02-21 22:47:15 · 146 阅读 · 0 评论 -
Inspiration from Clojure
http://www.infoq.com/presentations/Value-Identity-State-Rich-HickeyThis presentation shows on what basis did Rich Hickey design the language Clojure which is similar to LISP but run on the JVM pla...原创 2010-02-08 18:46:33 · 135 阅读 · 0 评论 -
动态分类计数器
昨天的工作遇到一个需求:要求根据用户 ID(Long 型)记录他的访问某个页面的次数。并且在所有用户的累积计数达到某个值后输出、清空并重新计数。这个记数有个特点,某些用户的访问次数会异乎寻常地多。因为这个记录只是在高访问量的时候做,所以对程序的并发度要求比较高。我们知道,高访问量下数字型对象的装箱拆箱会极大影响效率;在高并发下,锁竞争也会极大影响效率。对于装箱拆箱的问题,我们可以在...原创 2010-01-10 00:30:33 · 119 阅读 · 0 评论 -
Java 中文排序
在网上找到的最简单实用的方法:java.text.Collator用法:[code="java"]Comparator comp = Collator.getInstance(Locale.CHINA);[/code]原创 2010-01-06 19:55:31 · 98 阅读 · 0 评论 -
Maven 中直接依赖怎样影响间接依赖
相信学 Maven 的都看过 Maven 的官网文档的 [i]Introduction to Dependency Mechanism[/i]。在介绍直接依赖怎样影响间接依赖时,它给出了一个表格:[table]||compile|provided|runtime|test||compile|compile|-|runtime|-||provided|provided|provide...原创 2009-07-05 21:03:39 · 599 阅读 · 0 评论 -
FutureTask.isDone() 的返回问题
FutureTask.isDone() 方法在 cancel(boolean) 方法被调用后会立即返回 true。这在很多情况下不会是我们想要的。我们可能需要确保 FutureTask 所代表的后台线程已经执行完毕了再做一些事情。比如须要做一些资源清理、解锁等等。关于这一点,Sun Forum 里有一个[url=http://forums.sun.com/thread.jspa?threa...2009-05-30 06:41:42 · 4042 阅读 · 0 评论 -
获取文本控件的输出流
在 Swing 中,文本控件没有输出流!所谓的文本控件这里指派生自 JTextComponent 的控件,如 JTextField、JTextArea。但是,有时我们会有需要提取文本控件的输出流。通过向这个流写入文本,对应的文本控件上就会显示出来。比如,我们想把异常链给打印到控件上。Exception.printStackTrace() 方法只能接受 PrintStream 或 PrintWrit...2009-04-22 23:08:46 · 137 阅读 · 0 评论 -
JParsec中如何在parser规则里引用lexer规则
Java 的 Parser combinator 中最有名应该是 JParsec 了。随着 Java 8 的发布,我们也可以用 lambda 表达式来写规则了。刚开始的时候我以为它跟 C# 下面的 Sprache 会比较像,API 应该很容易。结果我错了。Sprache 的思想跟《Monadic Parser Combinators》这篇论文里的提到的设计方法如出一辙,是不区分 lexer 和 p...原创 2015-07-15 15:06:41 · 506 阅读 · 0 评论