- 浏览: 2739637 次
- 来自: 深圳
-
最新评论
-
Wangwei86609:
非常好的规则引擎框架,支持决策树和多线程运行规则https:/ ...
规则引擎 -
comet0515:
dist.lib是什么文件?提示找不到
Jenkins(Hudson)+Findbugs/PMD/Checkstyle的配置要点 -
comet0515:
不是maven工程能不能用checkstyle插件?job是一 ...
HUDSON/Jenkins -
comet0515:
不是maven工程能不能用checkstyle插件?job是一 ...
Jenkins(Hudson)+Findbugs/PMD/Checkstyle的配置要点 -
comet0515:
不是maven工程能不能用checkstyle插件?job是一 ...
Jenkins(Hudson)+Findbugs/PMD/Checkstyle的配备要点
文章列表
你对他好
把他的依靠当做回报
即使他无理向你取闹
最后还是见你泪中带笑
你看不到
心在那一天一地里越缩越小
才会 明知深渊还往里跳
我想男人的好
只有在他身边的那个女人才知道
只是谁是毒药
谁才是你的珍宝
要是男人的好
总要你委屈自己处处讨好
才能塑造 才能得到
你何必自寻苦恼
你对他好
把他的依靠当做回报
即使他无理向你取闹
最后还是见你泪中带笑
你看不到
心在那一天一地里越缩越小
- 2013-02-02 16:30
- 浏览 626
- 评论(0)
JSEL是一个基于逆波兰式结构,采用JS运算规则的简单的表达式解释引擎。 同时它还是一个JSON解析引擎。
基本特征
基于逆波兰式这个简单的计算模型,最大的特点就是简单。
支持短路优化(运算过程中,会根据需要,跳过无需计算的节点(boolean运算和三元运算有此类需求)。
运算规则基于前端开发人员熟悉的JavaScript,可以用于模板引擎的表达式实现。
他同时还是JSON解释引擎的超集,可以用于解释JSON数据源。
简单的运算接口,可以简单的重新定义运算规则。
由于引擎本身实现的简单,程序体积非常小(JAR文件只有22k,同类工具OGNL 168k);适合于嵌入 ...
- 2013-02-02 14:41
- 浏览 1491
- 评论(0)
逆波兰表达式又叫做后缀表达式。在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,所以,这种表示法也称为中缀表示。波兰逻辑学家J.Lukasiewicz于1929年提出了另一种表示表达式的方法。按此方法,每一运算符都置于其运算对象之后,故称为后缀表示。
逆波兰表达式,它的语法规定,表达式必须以逆波兰表达式的方式给出。逆波兰表达式又叫做后缀表达式。这个知识点在数据结构和编译原理这两门课程中都有介绍,下面是一些例子:
正常的表达式 逆波兰表达式
a+b ---> a,b,+
a+(b-c) ---> a,b,c,-,+
...
- 2013-02-02 14:04
- 浏览 901
- 评论(0)
波兰式又称中缀式
逆波兰式又称后缀式
还有一个前缀式
中缀式:
根据算符间的优先关系来确定运算的次序,此外,还应顾及括号规则
如 (A+B)*(C+D) =
运算法则符合我们正常的运算规律
后缀式是有中缀式所得
如 AB+CD+*
运算法则,从从左到右依次进栈,遇见字母入栈,遇见运算符,将前两个字母弹出,进行运算符计算后,将值在入栈,重复此过程
A入栈,B入栈,遇到+,A、B弹出,(A+B)入栈,C入栈,D入栈,遇见+,C、D弹出,(C+D)入栈,遇见*,(A+B)、(C+D)弹出,(A+B)*(C+D)入栈,最终栈里面的只有一个元素,该元素的值就为计算结果
...
- 2013-02-02 13:08
- 浏览 1030
- 评论(0)
正则引擎主要可以分为基本不同的两大类:一种是DFA(确定性有穷自动机,学过计算理论的应该都知道),另一种是NFA(非确定性有穷自动机),DFA和NFA都有很长的历史,NFA的历史更长一些,两者在二十多年的发展中产生了许多不必要的变体。而POSIX标准的出台是为了规范这种现象。POSIX标准不但清楚地规定了引擎应该支持的元字符和特性,还明确规定了使用者期望由表达式获得的准确结果。DFA已经符合新的标准,而NFA则需要修改才能符标准。这样一来,正则引擎可以粗略地分为3类:DFA、传统型NFA、POSIX
NFA,表格 1是从书中摘出来的,基本涵盖了现在主流的大部分程序。
表格 1
引擎类 ...
- 2013-02-02 12:51
- 浏览 1098
- 评论(0)
为什么需要 EL 表达式引擎
绝大多数人的绝大多数项目,是不需要一个嵌入式的表达式引擎的。因此,提供这个功能的目的就是:
满足一小撮人的一小撮要求
但是,"一小撮人"的"一小撮要求"有很多,作为一个小众类库,为什么单单打算支持这个特性呢?下面是我的理由:
这个功能是其它模块功能的基础,我们需要它
可能因此吸引其他的开发者对 Nutz 的兴趣
需要嵌入式表达式引擎的人是 Java 开发者的少数人,但是这些人也应该比 Nutz 的用户要多
这些人基本上编程水平要强一些
其他的提交者对增加这个特性没有特别强烈的反对 ...
- 2013-02-02 12:40
- 浏览 821
- 评论(0)
OGNL 的历史
OGNL 最初是为了能够使用对象的属性名来建立 UI 组件 (component) 和 控制器 (controllers) 之间的联系,简单来说就是:视图 与 控制器 之间数据的联系。后来为了应付更加复杂的数据关系,Drew Davidson 发明了一个被他称为 KVCL(Key-Value Coding Language) 的语言。 Luke 参与进来后,用 ANTLR 来实现了该语言,并给它取了这个新名字,他后来又使用 JavaCC 重新实现了该语言。目前 OGNL 由 Drew 来负责维护。目前很多项目中都用到了
OGNL,其中不乏为大家所熟知的,例如几个流行的 w ...
- 2013-02-02 12:37
- 浏览 721
- 评论(0)
为了配合一下JSEL的发布推广,做了一下性能测试。
说实在的,真不想做这类测试,太无趣了。
首先说明一下,这个表达式测试并不专业,我只是随便拿了一下我们 飞行大亨 Aviator的几个用例随便做的一个测试,吧数据记录一下,希望对大家有个参考价值:
对比的表达式系统有:
老牌的Ognl(老到网站都找不到了)
新来的MVEL
国产的Aviator
目前最快的JSEL:JSEL
测试表达式:
Java代码
- 2013-02-02 12:35
- 浏览 1416
- 评论(0)
参评的几款模板引擎为:
XMLTemplate(简称XT)
Velocity(简称VT)
CommonTemplate(简称CT)
FreeMarker(简称FT)
Smarty4j(简称ST)
直接的java代码
性能评测考虑以下几个方面:变量输出/循环/分支,这三大类调用构成了普通模板80%以上的功能。
测试方法为双层循环,输出的中间体是一个空的不执行任何操作的Writer类,
尽可能的减少模板外的性能影响因素,基本的逻辑伪代码描述如下:
Java代码
- 2013-02-02 12:34
- 浏览 816
- 评论(0)
OGNL是Object-Graph Navigation Language(对象图导航语言)的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。
下面在普通的project中,看一下ognl的各种表达式的运用。
public class Person {
private String name;
public String getName() {
retu ...
- 2013-02-02 10:25
- 浏览 870
- 评论(0)
基本的OGNL语法是十分简单的,当然OGNL支持丰富的表达式,一般情况下,不用担心OGNL的复杂性。例如有一个man对象,该对象有一个name属性,那么使用OGNL来获得该name属性可以使用如下表达式:
man.name
OGNL表达式的基础单元称为导航链,简称为链。一个最简单的链由如下部分组成。
>
属性名称:如上述示例中的name。
>
方法调用:hashCode()返回当前对象的hash code。
>
数组元素:listeners[0]返回当前对象的监听器列表中的第一个元素。
★说明★
OGNL表达式基于OGNL上下文中的当 ...
- 2013-02-02 10:19
- 浏览 811
- 评论(0)
OGNL是Object Graph Navigation Language的缩写,与JSP,JSF相比,OGNL是一种功能非常强大的针对Java的表达式语言(EL),它可用来读取和更新Java对象的属性。
OGNL可以用在以下方面:
- 用做数据绑定语言用来绑定GUI元素(textfield, combobox等)到模型对象
- 用做数据源语言用来映射数据库表到表模型对象
- 用做数据绑定语言用来绑定web组件到数据模型(WebOGNL,Tapestry,WebWork等)
- 提供类似Jakarta Commons BeanUtils所提供的功能(读取Java对象的属性)
OG ...
- 2013-02-02 09:07
- 浏览 769
- 评论(0)
Windows 下的IDE
◆Visual Web Developer
免费
Visual Web Developer 是一个简单来说是Visual Studio的一个剥离版本,只有web 开发。和VS一样它有一个很不错的project 管理和数据库工具。这个IDE面对的是初学者。
◆phpDesigner
75€ (~$105)
www.phpeditors.com 开发的 phpDesigner 是一个五星级的产品。他是一个超级快速的拥有强大功能的PHP的IDE。phpDesigner 提供一PHP调试器和性能分析器。它还支持所有WEB标准的语言。并提供了 Torto ...
- 2013-02-02 09:04
- 浏览 957
- 评论(0)
一.一个在平面上可显示多个条目的可滚动的视图组件,该组件中的条目通过一个ListAdapter和该组件进行关联。比如android手机中显示的应用:
比如实现九宫格图,用GridView是首选,也是最简单的。
* GridView网格视图是按照行,列分布的方式来显示多个组件,通常用于显示图片或者是图标等
* 在使用网格视图时,首先需要在屏幕上添加GridView组件,通常是在布局文件中添加
* GridView与ListView类似,都需要通过Adapter来提供要显示的数据,在使用GridView组件时,
* 通常使用SimpleAda ...
- 2013-02-01 23:38
- 浏览 1067
- 评论(0)
并发性是指两个或多个事件在同一时间间隔内发生。同时性是指两个或多个事件在同一时刻发生。二者的概念:幷发的实质是一个物理CPU(也可以多个物理CPU)在若干道程序之间多路复用,并发性是对有限物理资源强制行驶多用户共享以提高效率。并发性是关于软件过程分解成进程、线程并处理相关的效率、原子性、同步和调度问题。实现幷发技术的关键之一是如何对系统内的多个活动(进程)进行切换。并行性指的是两个或两个以上的事件或活动在同一时刻发生。在多道程序环境下,并行性使多个程序同一时刻可在不同CPU上同时执行。
并行性和并发性的区别:并行的时间或者活动一定是并发的,但是反之并发的时间或者活动未必是并行的。并行性是并发性 ...
- 2013-02-01 22:52
- 浏览 654
- 评论(0)