[网站分类]Java
飞飞狐
java开发
展开
-
TC(terracotta)服务器指定网卡
terracotta服务器启动是用bin目录下的start-tc-server.bat或start-tc-server.sh 可以用nohup:nohup sh start-tc-server.sh & 这种方式启动时加载默认的配置文件,在lib目录下tc.jar里面的/com/tc/config/schema/setup/default-config.xml 内容如下:原创 2010-03-30 16:30:00 · 1380 阅读 · 0 评论 -
3x3矩阵类
1: package com.jme.math; 2: 3: import java.io.IOException; 4: import java.io.Serializable; 5: import java.nio.FloatBuffer; 6: import java.util.logging.Logge...2009-11-11 16:03:00 · 178 阅读 · 0 评论 -
在父类获取子类属性
在父类中能获取子类的属性吗?一般情况下是不行的,因为孩子尚未出世哪里来的属性。但有时需要在父类处理该类(包含子类)的所有属性,该怎么做呢,有种方法能解决——在父类中将子类的实例引用进来。假设BaseClass是基类,有个getAll方法用以获取该类的所有属性。SubClass继承子BaseClass,SSClass继承自SubClass,SSClass的实例调用getAll方法时获取SSClass...2010-06-29 11:53:00 · 616 阅读 · 0 评论 -
Akka2使用探索1(Remoting)
akka从1.2升级到现在的2.0.2后有了很大的改变。现在摸索一下如何使用。 Remoting可以方便地用于服务器之间通信。akka1.2可以使用clientActor.sendRequestReply将消息发送到服务器端,并且同步获取服务器端的返回消息。但是akka2已经不能这么用了,akka2使用tell方法给另一个Actor发消息。tell有两个重载方法:/** * ...2012-08-09 09:20:16 · 103 阅读 · 0 评论 -
Akka2使用探索2(Configuration)
akka2使用Typesafe Config库,可以使用ConfigFactory.load()加载配置文件,默认加载classpath下的application.conf, application.json and application.properties文件。ActorSystem将会把这些配置和reference.conf合并(merge)起来。?如果要写akk...2012-08-09 09:21:49 · 124 阅读 · 0 评论 -
Akka2使用探索4(Actors)
Actor模型为编写并发和分布式系统提供了一种更高的抽象级别。它将开发人员从显式地处理锁和线程管理的工作中解脱出来,使编写并发和并行式系统更加容易。Akka Actor的API与Scala Actor类似,并且从Erlang中借用了一些语法。 Actor类的定义定义一个Actor类需要继承UntypedActor,并实现onReceive方法。 PropsProp...2012-08-09 09:25:30 · 128 阅读 · 0 评论 -
Akka2使用探索3(Duration 和 Deadline)
akka提供了两个关于时长的数据类型:Duration 和 Deadline,比如5秒钟这种含义。Duration.Inf表示无限,Duration.MinusInf表示负无限Deadline, 表示一个绝对的时间点,意义是最终期限,并且支持通过计算当前时间到deadline之间的差距来生成Duration下面是使用方法: import akka.util.Duratio...2012-08-09 17:51:59 · 177 阅读 · 0 评论 -
Akka2使用探索5(Typed Actors)
Akka 中的有类型 Actor 是 Active Objects 模式的一种实现. Smalltalk诞生之时,就已经缺省地将方法调用从同步操作发为异步派发。 有类型 Actor 由两 “部分” 组成, 一个public接口和一个实现, 如果你有 “企业级” Java的开发经验, 这对你应该非常熟悉。 对普通actor来说,你拥有一个外部API (public接口的实例) ...2012-08-10 11:16:18 · 270 阅读 · 0 评论 -
Akka2使用探索6(Futures)——实现并发和异步
Future用来获取某个并发操作的结果,这个结果可以同步(阻塞)或异步(非阻塞)的方式访问。 执行上下文Future 需要一个ExecutionContext, 它与java.util.concurrent.Executor 很相像. 如果你在作用域内有一个 ActorSystem , 它可以用system.dispatcher()作 ExecutionContext...2012-08-14 18:01:17 · 163 阅读 · 0 评论 -
Akka2使用探索7——“云计算”示例(Actor、Future、Remoting、Router、Deploy、异步、并发使用Demo)...
假设有一个很耗时的运算,单台机器已经没法满足需求,这时你可以想到由多台计算机协作完成。具体怎么做呢。举个很简单的例子,假设这个耗时的运算是从1加到100000,你现在有两台服务器,可以让这两台服务器分别完成从1加到50000,和从50001加到100000,然后本机完成这两个结果之和。 两台服务器分别启动两个akka Server,同时还有一个CalcActor。这个计算acto...2012-08-22 15:39:12 · 146 阅读 · 0 评论 -
自定义数据类型的数据库映射方案
基础数据类型,如String、Integer、Date、Boolean等它们可以很方便的映射到数据库:import grails.persistence.Entity@Entityclass MyEntity { String code String name static constraints = { code(uniq...2012-08-29 14:24:57 · 154 阅读 · 0 评论 -
序列化:Serializable和Externalizable
Externalizable是深度定制序列化。如果同时实现了这两个接口,则只会执行Externalizable。 Serializable可以仅仅标记可序列化,使用JDK默认的序列化方法,也可以定制。实现方法: private void writeObject(ObjectOutputStream oos) {// oos.defaultWriteOb...2012-08-29 15:25:42 · 88 阅读 · 0 评论 -
用Groovy源编程(MOP)动态拦截(AOP)方法(比如记录String的concat和toUpperCase方法的耗费时间)...
实现AOP的方式有很多种,像Spring的AOP,它只能拦截Spring托管的bean;Groovy AST Transformations、ASM等在编译阶段通过修改字节码也可以做AOP;JAVA HOOK也可以做,但比较麻烦。Groovy MOP提供了一种很简单的方法实现AOP。 下面通过例子试用一下:如果想动态拦截某个方法,不想改源代码(或者不能改源码,比如Stri...2012-09-10 17:36:10 · 160 阅读 · 0 评论 -
3D向量类
隐藏行号 复制代码 ? 源代码 /* * Copyright (c) 2003-2009 jMonkeyEngine * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are p...2009-11-11 13:50:00 · 102 阅读 · 0 评论 -
Groovy元编程MOP(ExpandoMetaClass:EMC)的应用场景
使用ExpandoMetaClass和Category可以实现元编程。ExpandoMetaClass可以动态添加和修改类的构造器,方法和属性。Category只能动态添加和修改类的方法。当使用EMC动态添加或修改方法时,闭包Closure作为方法体被传入,它的delegate指向调用此方法的实例。具体使用可参考:http://www.groovyq.net/node/751、为类原创 2012-09-20 16:46:13 · 1996 阅读 · 0 评论 -
用ASM实现AOP
AOP的关键在于拦截,如果在代码中直接写入要插入的代码则是最直接的AOP。这当然不是指在source中生写代码,而是希望在程序员不知觉的情况下修改了代码。 asm是个开源包,可以很方便地读写class的bytecode。网站是http://asm.ow2.org/。为了方便修改类建议下载Eclipse插件。 使用方法挺简单。首先实现一个ClassAdapter导出类,找到要修改的函数: public class SOClassAdapter extends ClassAdapter { public原创 2010-08-07 17:28:00 · 907 阅读 · 0 评论 -
Groovy的展开操作符(Spread Operator)*.和*
Groovy的spread-dot操作符 "*."操作符称之为:spread-dot操作,即“展开(点)”操作。比如 list*.member 跟 list.collect{ item -> item?.member } 是等效的。此处member可以是属性,也可以是get/set方法,甚至是一般的方法。如下例 class SpreadDotDemo { def count } def list = [new SpreadDotDemo(cou原创 2011-05-04 09:45:00 · 1263 阅读 · 0 评论 -
年龄Age的计算(可以精确到1岁3个月10天)
import java.text.SimpleDateFormat/** * 年龄对象(3岁、3个月、30天) */class Age { Integer age AgeUnit unit Integer year Integer month Integer day Age() { }原创 2011-06-28 21:43:00 · 2371 阅读 · 0 评论 -
Akka2使用探索3(Duration 和 Deadline)
akka提供了两个关于时长的数据类型:Duration 和 Deadline,比如5秒钟这种含义。Duration.Inf表示无限,Duration.MinusInf表示负无限Deadline, 表示一个绝对的时间点,意义是最终期限,并且支持通过计算当前时间到deadline之间的差距来生成Duration下面是使用方法: import akka.util.原创 2012-08-09 17:47:24 · 1775 阅读 · 0 评论 -
Akka2使用探索2(Configuration)
akka2使用Typesafe Config库,可以使用ConfigFactory.load()加载配置文件,默认加载classpath下的application.conf, application.json and application.properties文件。ActorSystem将会把这些配置和reference.conf合并(merge)起来。?如果要写akka应用,将配置写在原创 2012-08-09 09:17:58 · 1951 阅读 · 0 评论 -
Akka2使用探索4(Actors)
Actor模型为编写并发和分布式系统提供了一种更高的抽象级别。它将开发人员从显式地处理锁和线程管理的工作中解脱出来,使编写并发和并行式系统更加容易。Akka Actor的API与Scala Actor类似,并且从Erlang中借用了一些语法。Actor类的定义定义一个Actor类需要继承UntypedActor,并实现onReceive方法。PropsProps是一个用原创 2012-08-09 09:20:22 · 6532 阅读 · 1 评论 -
Akka2使用探索5(Typed Actors)
Akka 中的有类型 Actor 是 Active Objects 模式的一种实现. Smalltalk诞生之时,就已经缺省地将方法调用从同步操作发为异步派发。有类型 Actor 由两 “部分” 组成, 一个public接口和一个实现, 如果你有 “企业级” Java的开发经验, 这对你应该非常熟悉。 对普通actor来说,你拥有一个外部API (public接口的实例) 来将方法调用异步原创 2012-08-10 11:12:34 · 3724 阅读 · 0 评论 -
Akka2使用探索6(Futures)——实现并发和异步
Future用来获取某个并发操作的结果,这个结果可以同步(阻塞)或异步(非阻塞)的方式访问。执行上下文Future 需要一个ExecutionContext, 它与java.util.concurrent.Executor 很相像. 如果你在作用域内有一个ActorSystem , 它可以用system.dispatcher()作 ExecutionContext。你也可以用Exe原创 2012-08-14 17:57:44 · 3273 阅读 · 0 评论 -
自定义数据类型的数据库映射方案
基础数据类型,如String、Integer、Date、Boolean等它们可以很方便的映射到数据库:import grails.persistence.Entity@Entityclass MyEntity { String code String name static constraints = { code(unique: true,原创 2012-08-29 12:12:26 · 4257 阅读 · 0 评论 -
序列化:Serializable和Externalizable
Externalizable是深度定制序列化。如果同时实现了这两个接口,则只会执行Externalizable。 Serializable可以仅仅标记可序列化,使用JDK默认的序列化方法,也可以定制。实现方法: private void writeObject(ObjectOutputStream oos) {// oos.defaultWriteOb原创 2012-08-29 15:20:57 · 2113 阅读 · 0 评论 -
Akka2使用探索1(Remoting)
akka从1.2升级到现在的2.0.2后有了很大的改变。现在摸索一下如何使用。Remoting可以方便地用于服务器之间通信。akka1.2可以使用clientActor.sendRequestReply将消息发送到服务器端,并且同步获取服务器端的返回消息。但是akka2已经不能这么用了,akka2使用tell方法给另一个Actor发消息。tell有两个重载方法:/** * Se原创 2012-08-09 09:14:46 · 2021 阅读 · 0 评论 -
用Groovy源编程(MOP)动态拦截(AOP)方法(比如记录String的concat和toUpperCase方法的耗费时间)
实现AOP的方式有很多种,像Spring的AOP,它只能拦截Spring托管的bean;Groovy AST Transformations、ASM等在编译阶段通过修改字节码也可以做AOP;JAVA HOOK也可以做,但比较麻烦。Groovy MOP提供了一种很简单的方法实现AOP。下面通过例子试用一下:如果想动态拦截某个方法,不想改源代码(或者不能改源码,比如String已经是f原创 2012-09-10 17:32:32 · 1761 阅读 · 0 评论 -
Groovy元编程MOP(ExpandoMetaClass:EMC)的应用场景
使用ExpandoMetaClass和Category可以实现元编程。ExpandoMetaClass可以动态添加和修改类的构造器,方法和属性。Category只能动态添加和修改类的方法。当使用EMC动态添加或修改方法时,闭包Closure作为方法体被传入,它的delegate指向调用此方法的实例。具体使用可参考:http://www.groovyq.net/node/75 ...2012-09-20 16:49:53 · 110 阅读 · 0 评论