自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

简单LRU算法实现缓存

    最简单的LRU算法实现,就是利用jdk的LinkedHashMap,覆写其中的removeEldestEntry(Map.Entry)方法即可,如下所示:java 代码  import java.util.ArrayList;   import java.util.Collection;   import java.util.LinkedHashMap;  ...

2007-09-29 17:53:45 128

Ruby的对象模型

    Ruby的对象模型,包含在下面这张图中:    首先要知道,Ruby中的类也是对象,类相比于其他对象特殊的地方在于能够产生对象,既然类是对象,那么它显然也有类,也就是所谓类的类,这个类的类在 Ruby中就是类的metaclass,图中的(OtherClass),(OtherClass)就是类OtherClass的klass(c层次), (OtherClass)存储了类的方法(类方法)...

2007-09-29 09:56:49 157

辞职,开始找工作

    这一周,终于下定决心辞职了,提交了辞职申请,领导的意思是希望我呆到10月底。。。。。。开始投简历找工作。。。这次想好好找份不错的工作,好好干活,好好生活,好好学习,天天向上。...

2007-09-28 15:27:57 75

Ruby变量在c ruby中的存储

    读完ruby hacking guide第6章,彻底总结下:1.在Ruby中,类也是一个对象,因此有实例变量。类的实例变量、类变量、常量都是存储在RClass struct的iv_tbl中,struct RClass {    struct RBasic basic;    struct st_table *iv_tbl;    struct st_table *m_tbl; ...

2007-09-27 11:44:22 83

模仿st_table写的StTable类

    读ruby hacking guide,其中专门辟了一个章节介绍了st.c中的st_table,这个数据结构也就是类似java中的HashMap,基本原理是利用数组存储,数组的每一个元素是一个单向链表,链表中再存储具体的元素,如下图所示的结构   ruby中利用这个结构来存储对象变量、类方法、常量、全局变量等信息,在c ruby中,方法、变量都是用一个整型作为键值来存储在st_tabl...

2007-09-18 19:34:12 249

判断栈的增长方向

    dreamhead老大曾经讨论过这个问题,寻找一种可移植的方式来判断栈的增长方向,见《栈的增长方向》。 今天在读Ruby hacking guide第5章,介绍alloca函数的部分,提到ruby实现的C语言版本的alloca.c,读了下代码,发现这里倒是实现了一个很漂亮的函数用于 实现判断栈的增长方向,利用了局部static变量,与dreamhead老大的想法其实是一致的。cpp 代码...

2007-09-17 16:18:32 131

Re: Ruby的太极八卦图

楼上的图才算是完整了,OtherClass类的实例是instance,instance的singleton类是(instance),继承自OtherClass,这个(instance)在ruby层次上无法见到。 rb_cObject = boot_defclass("Object", 0); rb_cModule = boot_defclass("Module", rb_cObject); rb...

2007-09-14 11:20:01 174

深入下Ruby中的String

    Ruby语言中的String是mutable的,不像java、C#中的String是immutable的。比如       str1="abc"       str2="abc"在java中,对于字面量的字符串,jvm内部维持一张表,因此如果在java中,str1和str2是同一个String对象。而在Ruby中, str1和str2是完全不同的对象。同样,在java中对于Strin...

2007-09-12 09:47:44 150

利用Doug Lea的并发包实现带超时机制的线程池

    jdk5引入的concurrent包来自于Doug Lea的卓越贡献。最近我在查找服务器OOM的原因之后,决定采用这个包重写应用中一个servlet,这个servlet调用了一个阻塞方法,当被阻塞 之后,服务器中的线程数(因为阻塞了,后续请求不断地新增线程)突然增加导致了服务器当机,因此决定采用一个线程池,并且设置超时,如果阻塞方法超过一定 时间就取消线程。因为我们的项目仍然跑在jdk 1...

2007-09-09 14:25:19 188

PIPE2——Petri网编辑工具

    最近重新读起了《工作流管理-模型、方法和系统》,需要一个Petri网画图、分析的工具,google一把,在sourceforge上找到PIPE2项 目。按它的描述是:Platform Independent Petri Net Editor 2。看了下源码是用swing写的。已经基本满足我的要求了。项目地址:http://pipe2.sourceforge.net/...

2007-09-05 16:49:19 1526

ruby Tk版本的google翻译机

过去写的那个调用google翻译的翻译脚本,一直在用。那个版本只能处理单个单词,如果要翻译一行或者一段语句,尽管稍微修改下就可以,但失去了我想要 的便利性。今天看了看TK,顺手写了个GUI版本的,采用一次请求一个线程,倒是便捷不少。在windows上,你需要到这里下载安装ActiveTcl才可以运行。代码如下:ruby 代码  require 'net/http'   r...

2007-09-04 15:54:15 125

线程任务的取消

    当外部代码能够在活动自然完成之前,把它的状态更改为完成状态,那么这个活动被称为可取消(cancellable)。取消任务是一个很常见的需求,无论 是由于用户请求还是系统错误引起的服务关闭等等原因。最简单的任务取消策略就是在线程中维持一个bool变量,在run方法中判断此变量的bool值来决 定是否取消任务。显然,这个bool变量需要声明为volatile,以保持多线程环境下可见性(所谓可见...

2007-09-03 15:50:37 83

C语言中实现可变参数函数

    通过stdarg.h头文件为函数提供了定义可变参数列表的能力。声明一个可变参数的函数类似:void f1(int n,...);其中n表示参数列表个数,而用省略号来表示未知参数列表。stdarg.h中提供了一个va_list类型,用于存放参数。一个大概的使用过程类似:void f1(int n,...){   va_list ap;   va_start(ap,n);   /...

2007-09-01 14:55:31 77

《工作流管理——模型、方法和系统》笔记2:Petri网对工作流建模

一、工作流概念1.案例(case):工作流系统的基本目的就是处理案例,保险索赔、绩效考核、抵押申请等等都是案例。每一个案例都有一个唯一的标识,案例在出现和消失之间总是处于某个特定状态,这个状态有三个元素组成:(1)案例相关的属性,指出特定条件下案例是否被执行或者忽略(2)已经满足的条件,说明案例的进展。(3)案例的内容,可能是文档、文件、档案或者数据库2.任务(task),泛指一般的工作...

2007-09-01 14:54:28 777

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除