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