- 浏览: 66417 次
- 性别:
- 来自: 杭州
最新评论
-
meimei_123abc:
你好,可以把这个完整的代码给我发一个学习下吗,刚开始接触这一块 ...
在JNI中调用本地带结构体参数的函数 -
yangdong:
sorry,之后一直没再碰过 JNI,没法再写了。
在JNI中调用本地带结构体参数的函数 -
ihopethatwell:
楼主,能写一个传递数组的结构体?
在JNI中调用本地带结构体参数的函数 -
yangdong:
谢谢。我只是追求形似,所以找不到对应的写法。
Stream in Clojure -
jamesqiu:
Clojure的lazy-cat和Scala的Stream实现 ...
Stream in Clojure
文章列表
《Growing Object-Oriented Software, Guided by Tests》中说,过多的 getters 意味着你暴露了过多的内部细节。这种细节包括内部的数据结构、内部的对象图。作者的团队主张“No Getters”。当然这是很极端的主张。这种主张有两个比较出名,而且充满争议的名字“Tell, Don't Ask”、“Law of Demeter”。尽量坚持 Law of Demeter 的好处是能让你提高信息隐藏的程度。我个人认为 OO 之所以受欢迎就是因为提供了一个自然地实现信息隐藏的手段。
如果你注意观察这两个链接所展示的争论你会发现极少有人否定 Law of ...
DDD 的经典 Cargo 1.1 示例中,domain.experiment 包下的 ValueObject 接口定义了一个 copy() 方法。我认为并无用处。有的资料说防止外部修改。这个在 Java 下说不通。Java 没有指针的概念,所以不会有 C/C++ 下的指向指针的指针。也就是说,把 ValueObject 的引用暴露出去,客户代码无法修改这个引用指向的地址。又因为 ValueObject 是不变体,所以客户代码也无法修改引用指向的对象的值。所以暴露 ValueObject 的引用是安全的。
有的人会说 ValueObject 可能不一定是不变体,比如 Cargo 示例中的 Le ...
精巧的状态机实现片段
- 博客分类:
- Java
public enum SniperState {
JOINING {
@Override public SniperState whenAuctionClosed() { return LOST; }
},
BIDDING {
@Override public SniperState whenAuctionClosed() { return LOST; }
},
WINNING {
@Override public SniperState whenAuctionClosed() { return WON; }
},
L ...
http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey
This presentation shows on what basis did Rich Hickey design the language Clojure which is similar to LISP but run on the JVM platform. It reveals one thing that is very interesting to our Java world:
How to implement immutable coll ...
在公司解决 Oracle 锁表问题时查到的资料:
select a.object_name,
l.session_id,
l.oracle_username,
l.os_user_name,
s.machine,
s.sid,
s.sql_address,
s.sql_hash_value,
s.sql_id,
s.sql_child_number
from v$session s, v$locked_object l, a ...
昨天的工作遇到一个需求:要求根据用户 ID(Long 型)记录他的访问某个页面的次数。并且在所有用户的累积计数达到某个值后输出、清空并重新计数。这个记数有个特点,某些用户的访问次数会异乎寻常地多。
因为这个记录只是在高访问量的时候做,所以对程序的并发度要求比较高。我们知道,高访问量下数字型对象的装箱拆箱会极大影响效率;在高并发下,锁竞争也会极大影响效率。
对于装箱拆箱的问题,我们可以在一开始的时候用 new Long(0) 之类的来初始化计数器,但是之后的自增计数器的操作还是会先进行拆箱,在栈里运算后再进行装箱。并发的问题我们看起来可以用 ConcurrentHashMap 来解决。但是对于 ...
在网上找到的最简单实用的方法:
java.text.Collator
用法:
Comparator<Object> comp = Collator.getInstance(Locale.CHINA);
Ubuntu 9.04 自带的 evince 看中文是乱码。下面的解决方案是我从网上搜集汇总而来。应该能解决大多数中文 PDF 的乱码问题。如果您还能补全,欢迎留言。
1. 安装 xpdf 简体语言包
sudo apt-get install xpdf-chinese-simplified
sudo apt-get install xpdf-chinese-traditional
2. 安装 poppler-data
sudo apt-get install poppler-data
3. 拷贝 Windows XP 字体到 Ubuntu。
3.1. 先把所有的 ttc ...
- 2009-09-22 22:00
- 浏览 1812
- 评论(0)
在 Effective Java 中,Joshua Bloch 提到,如果一个可实例化的类定义了 equals 方法。另有一个子类继承它,也定义了额外一些属性,并且 equals 方法中需要使用这些新定义的属性进行相等性判断。那么就不可能保证 equals 语义的正确。
相信看过 Effective Java 的人当年读到这里时都会觉得丧气。就好像完美的世界突然有了一个无法缝合的裂口。先不要完全丧失兴趣,看看下面的文章:
How to Write an Equality Method in Java
这篇主要由 Scala 的作者 Martin Odersky 执笔的文章中提到了一个有意思的 ...
- 2009-09-14 22:59
- 浏览 1017
- 评论(0)
groovy 中 this 的语义有问题。下面的代码会报异常,说 secret2 方法找不到:
new Sub().doSomething()
class Parent {
def doSomething() {
secret().secret2()
}
private def secret() {
println "secret"
this
}
private def secret2() {
println "secret 2"
this
}
}
class Sub ex ...
Maven 中直接依赖怎样影响间接依赖
- 博客分类:
- Java
相信学 Maven 的都看过 Maven 的官网文档的 Introduction to Dependency Mechanism。在介绍直接依赖怎样影响间接依赖时,它给出了一个表格:
compileprovidedruntimetestcompilecompile-runtime-providedprovidedprovidedprovided-runtimeruntime-runtime_testtest-test-
表格的最左边的列是直接依赖的名字,最上面的行是间接依赖的名字。“-”表示依赖将被忽略,也就是没有依赖。比如 project-a 对 project-b 有 compile 依赖, ...
FutureTask.isDone() 方法在 cancel(boolean) 方法被调用后会立即返回 true。这在很多情况下不会是我们想要的。我们可能需要确保 FutureTask 所代表的后台线程已经执行完毕了再做一些事情。比如须要做一些资源清理、解锁等等。
关于这 ...
在 Swing 中,文本控件没有输出流!所谓的文本控件这里指派生自 JTextComponent 的控件,如 JTextField、JTextArea。但是,有时我们会有需要提取文本控件的输出流。通过向这个流写入文本,对应的文本控件上就会显示出来。比如,我们想把异常链给打印到控件上。Exception.printStackTrace() 方法只能接受 PrintStream 或 PrintWriter 参数。
既然控件没有流,那我们创建一个流。基于这样的思路:通过向流中写文本,在流的实现中将接收到的文本通过 JTextComponent.setText(String) 的方式写到控件上。一个简 ...
两个 JavaScript 面向对象的方法
- 博客分类:
- 动态语言
准备工作
为了演示或者您试验,请先准备好下面的 HTML 模板。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
body, body * {
font: 10pt Arial;
}
.tbl {
border-style: solid;
border-width: 1px;
width ...
firstChild 把我玩了
- 博客分类:
- 动态语言
加班两三个小时,就是因为被一个 DWR 的函数给玩了。dwr.util.removeAllRows(ele, options) 这个函数可以把 ele 元素下的所有子元素删除,但允许你添加例外。我试图把一个 <table> 下的一行保留下来。
<table>
<tr id="row">
<td>a</td>
</tr>
<tr id="row1">
<td>a</td>
</tr>
<tr id= ...