自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HashCode In Java

很多时候,我们会使用java的hashCode在一定范围内区别对象。但是我们对java的hashCode生成规则了解多少?翻看JDK源码就可以看到我们常用的数据结构,如HashMap,ArrayList,String,Integer等类型HashCode的实现方式。Java中的所有类的基类Object类中定义并实现了方法hashCode(),在Object类中该方法被定义成为native方法,...

2010-11-24 22:29:52 183

原创 Groovy基础与实践——字符串

   在JAVA中,String的操作总是同其它对象一下,任何操作都是要一丝不苟地进行方法调用,Groovy在语法特性上加入了对String的便捷支持。为了更好的扩展String类(Java中是final型),Groovy定义了GString作为String的支持。具体来看,Groovy带给String的灵活特性:1、字符运算    在java的世界中很难想象能偶对字符串进行直接的加...

2010-10-26 23:31:22 307

原创 CSS样式优先级

在CSS中使得一个具体的元素获得一个样式定义属性集合,有以下几种方式:1、直接在元素中通过style来定义标签样式(许多JS是通过这种方式来动态控制元素的样式)比如有以下代码<div tyle="background:black"> </div>通过style方式来定义了div标签的样式,这种方式定义样式在css规范中有很高的优先权(1000)2.通...

2010-10-26 15:32:32 200

原创 Groovy基础与实践——与Java的基本不同点

1、逻辑运算符 == ,在java中运算符 == 是用作对比两个对象的标识是否一样,或者对于基本类型而言数据值是否相等。基本类型和对象数据之间是不可以用直接意义上的比较,java中采用的是将对象类型拆箱,而在groovy中,由于自动装箱的功能,一切都是对象。要使得 == 比较有通用性的意义,groovy通过equals()来重载 == 预算符。2、 在groovy中以下包都是默认引用的,在gr...

2010-10-25 21:37:44 144

原创 使用spring的多线程机制

多线程并发处理起来通常比较麻烦,如果你使用spring容器来管理业务bean,事情就好办了多了。spring封装了java的多线程的实现,你只需要关注于并发事物的流程以及一些并发负载量等特性。具体来说如何使用spring来处理并发事务:首先编写具体的事务逻辑,实现Runnable接口,比如说package com.andy.threadDemo; pu...

2010-10-25 21:36:30 129

原创 Groovy基础与实践——语言模型序

    很好奇GROOVY是如何在JAVA语言的基础上平添了如此之多的强大功能和语言特性。翻看了一些GROOVY的源代码。语言的特性,离不开语言底层模型的支持,在构建好自己的语言模型之后,接下来需要的就是形式化的东西,也就是语法,遵循语法编写代码,以用编译器构建出既定的语言模型体系下的字节码,然后再JVM机上无差别于JAVA代码一样运行,我理解的Groovy就是这样。...

2010-10-25 21:35:28 190

原创 Groovy基础与实践——共享Binding共享代码

如果有脚本作为业务逻辑来运作,有大批量的脚本,每个脚本对应一个独立的业务功能点,比如支持一面上某一功能的展示。有这样的应用场景,将Groovy脚本作为Velocity背后的逻辑语言支持。每个Groovy脚本负责页面上一个功能点的数据准备。然而在一个又有数十个上百个WEB应用系统协作运行的大型分布式WEB应用系统,很多时候,我们需要在不同的应用的不用页面上展示某些相同的功能,然后又有更为...

2010-10-25 21:34:31 1158

原创 Groovy基础与实践——关于Groovy脚本

Groovy本身是可以作为脚本以松散的代码方式执行的。前面的文章中已经说过了groovy脚本的代码组织方式。本文主要是谈谈Groovy脚本中关于方式调用,脚本相关属性访问的问题。我们编写松散的Groovy代码,实际上就是在实现Groovy脚本对象Script的run方法。当然我们可以定义方法,当我们引用一个方法的时候,首先是从对应的MetaClass中去寻找对应的方法,如果找不到便从自...

2010-10-25 21:33:12 240

原创 Groovy基础与实践——MetaClass何时创建

MetaClassRegistry 维护着class和meta=class之间的对应关系。那么这个映射表中键值对又是在什么时候添加的喃?有两种情况,比如我们的代码中主动地设置,比如我们使用了ExpandoMetaClass来扩展java类,另外一种情况是就是Groovy本身的Class是何时与其MetaClass挂钩的?之前有猜想过,这种映射关系是在加载了groovy的Clas...

2010-10-25 21:31:56 189

原创 纯java PHP引擎——Quercus

由于公司项目的需要,最经在研究Quercus一个纯java的php引擎。项目这两个需要做的就是将该引擎裁剪,做一个相对安全的版本,提供给ISV使用,同时,在引擎中提供默认的接口供调用。所以先研究了一下,在Quercus引擎的支持下,PHP如何与java集成。以下是学习到的几点:1、如果使用 Resin-IoC/WebBeans来组织应用的服务到脚本中,那么脚本中就可以直接获取到配置的服务的...

2010-10-25 21:30:19 204

原创 Spring 任务调度

Spring本身不提供任务调度的直接实现,但是Spring在自身框架原则前提下提供了对Timer和Quartz的集成。使用spring容器可以轻松地对既有的bean进行任务调度。在说明如何在spring中使用任务调度之前,首先来看看Timer本身。JDK中提供的Timer是比Quartz更为简单的调度方法,当然,Quartz提供了更为强大的功能。相比Timer,Quartz独有的特...

2010-10-25 21:25:20 93

原创 Groovy基础与实践——判定对象的属性和方法是否存在

 Groovy的动态特性允许对象和类都能够在运行期动态地添加方法和属性,在复杂的应用场景,我们很难判断一个具体的对象是否有某个方法。也有这么一个应用场景,是我所经历到的,Groovy脚本代码被不同的java应用系统加载,脚本依赖于各个应用系统提供的java环境运行,这个环境包括当前应用的classpath中有哪些jar包,jar包版本等等,以及由具体应用系统通过bingding...

2010-10-25 21:23:45 2360

原创 Groovy基础与实践——打造Groovy环境

两种方式在linux下安装groovy:1、直接通过rpm进行安装,具体步骤如下:    1、输入命令 wget http://dist.groovy.codehaus.org/distributions/rpm/groovy-1.7.1-2.noarch.rpm 下载安装文件    2、使用rmp命令进行安装: rpm -ivh groovy-1.7.1-2....

2010-10-25 20:46:46 176

原创 Linux 下安装Groovy

<br />两种方式在linux下安装groovy:<br />1、直接通过rpm进行安装,具体步骤如下:<br />    1、输入命令 wget http://dist.groovy.codehaus.org/distributions/rpm/groovy-1.7.1-2.noarch.rpm 下载安装文件<br />    2、使用rmp命令进行安装: rpm -ivh groovy-1.7.1-2.noarch.rpm,这里的安装是基于一定的权限的,因为会在安装包既定的目录下生成        

2010-10-23 17:10:00 4808

原创 动态判定Groovy对象方法和属性是否存在

<br /><br />Groovy的动态特性允许对象和类都能够在运行期动态地添加方法和属性,在复杂的应用场景,我们很难判断一个具体的对象是否有某个方法。<br />也有这么一个应用场景,是我所经历到的,Groovy脚本代码被不同的java应用系统加载,脚本依赖于各个应用系统提供的java环境运行,这个环境<br />包括当前应用的classpath中有哪些jar包,jar包版本等等,以及由具体应用系统通过bingding对象向脚本中注入的一系列的作为技术服务的bean,<br />比如获取数据的接口bea

2010-10-23 13:46:00 9617

原创 Spring 任务调度

Spring本身不提供任务调度的直接实现,但是Spring在自身框架原则前提下提供了对Timer和Quartz的集成。使用spring容器可以轻松地对既有的bean进行任务调度。在说明如何在spring中使用任务调度之前,首先来看看Timer本身。JDK中提供的Timer是比Quartz更为简单的调度方法,当然,Quartz提供了更为强大的功能。相比Timer,Quartz独有的特性包括:1、支持持久性作业。Quartz允许将作业状态持久化,在应用服务器重启之间,也能够保持一致的作业状态。2、类Cron的定

2010-06-26 18:14:00 10569

原创 纯java PHP引擎——Quercus

由于公司项目的需要,最经在研究Quercus一个纯java的php引擎。项目这两个需要做的就是将该引擎裁剪,做一个相对安全的版本,提供给ISV使用,同时,在引擎中提供默认的接口供调用。所以先研究了一下,在Quercus引擎的支持下,PHP如何与java集成。以下是学习到的几点:1、如果使用 Resin-IoC/WebBeans来组织应用的服务到脚本中,那么脚本中就可以直接获取到配置的服务的单例实例的引用,使用方式如下findData("demoId"); foreach ($demo->getData

2010-05-31 23:13:00 1391

原创 网站服务端性能优化三部曲

由于今年年初一个大项目,对系统的架构做了相当大的调整。系统的可装修性大大提高,页面的个性化组织更加灵活,包括页面上各个功能模块的公用性也大大增加。在提供给用户更为优质的装修服务的同时,也遇到了另外一个问题。系统的性能相比之前较为简单集中地系统一定程度上降低了一些。最近做了几次优化,性能提升比较明显。 1、去掉冗余空格用户对自己的页面是可以自主装修的,所以系统的页面都是动态地基于功能模板

2010-05-23 19:34:00 1211

原创 MetaClass何时创建

MetaClassRegistry 维护着class和meta=class之间的对应关系。那么这个映射表中键值对又是在什么时候添加的喃?有两种情况,比如我们的代码中主动地设置,比如我们使用了ExpandoMetaClass来扩展java类,另外一种情况是就是Groovy本身的Class是何时与其MetaClass挂钩的?之前有猜想过,这种映射关系是在加载了groovy的Class之后,也就

2010-05-17 00:19:00 1111

原创 关于Groovy脚本

Groovy本身是可以作为脚本以松散的代码方式执行的。前面的文章中已经说过了groovy脚本的代码组织方式。本文主要是谈谈Groovy脚本中关于方式调用,脚本相关属性访问的问题。我们编写松散的Groovy代码,实际上就是在实现Groovy脚本对象Script的run方法。当然我们可以定义方法,当我们引用一个方法的时候,首先是从对应的MetaClass中去寻找对应的方法,如果找不到便从自己的Bi

2010-05-15 22:32:00 3800 1

原创 共享Binding共享代码

如果有脚本作为业务逻辑来运作,有大批量的脚本,每个脚本对应一个独立的业务功能点,比如支持一面上某一功能的展示。有这样的应用场景,将Groovy脚本作为Velocity背后的逻辑语言支持。每个Groovy脚本负责页面上一个功能点的数据准备。然而在一个又有数十个上百个WEB应用系统协作运行的大型分布式WEB应用系统,很多时候,我们需要在不同的应用的不用页面上展示某些相同的功能,然后又有更为疯狂的想法,

2010-05-15 15:13:00 1111

原创 Groovy 语言模型序

    很好奇GROOVY是如何在JAVA语言的基础上平添了如此之多的强大功能和语言特性。翻看了一些GROOVY的源代码。语言的特性,离不开语言底层模型的支持,在构建好自己的语言模型之后,接下来需要的就是形式化的东西,也就是语法,遵循语法编写代码,以用编译器构建出既定的语言模型体系下的字节码,然后再JVM机上无差别于JAVA代码一样运行,我理解的Groovy就是这样。    GROOVY可

2010-04-23 00:23:00 4070 1

原创 使用spring的多线程机制

多线程并发处理起来通常比较麻烦,如果你使用spring容器来管理业务bean,事情就好办了多了。spring封装了java的多线程的实现,你只需要关注于并发事物的流程以及一些并发负载量等特性。具体来说如何使用spring来处理并发事务: 首先编写具体的事务逻辑,实现Runnable接口,比如说  package com.andy.threadDemo; public class

2010-04-18 11:37:00 31174 7

原创 Groovy与Java的基本不同点

1、逻辑运算符 == ,在java中运算符 == 是用作对比两个对象的标识是否一样,或者对于基本类型而言数据值是否相等。基本类型和对象数据之间是不可以用直接意义上的比较,java中采用的是将对象类型拆箱,而在groovy中,由于自动装箱的功能,一切都是对象。要使得 == 比较有通用性的意义,groovy通过equals()来重载 == 预算符。 2、 在groovy中以下包都是默认引用的,

2010-04-16 00:30:00 1322

转载 使用闭包、ExpandoMetaClass 和类别进行元编程

http://www.ibm.com/developerworks/cn/java/j-pg06239.html

2010-04-11 12:36:00 706

转载 构建和解析 XML 全攻略

http://www.ibm.com/developerworks/cn/java/j-pg05199/index.html

2010-04-11 12:02:00 901

原创 Groovy 脚本接受命令行参数

我们很多时候将groovy作为脚本,在命令行执行。脚本中如何接受参数来制定脚本的行为喃?代码如下if (this.args.size() !=2 )  {  println "this script expects exactly two arguments"}else{ this.args.each{   println it }}在脚本中通过使用this.arg

2010-04-11 11:30:00 8231

原创 Groovy 构建命令行参数

http://blog.chenlb.com/2008/12/groovy-cli-builder-easy-build-command-line-program.html

2010-04-11 02:32:00 1982

原创 Groovy MOP

Groovy方法和属性都是动态调用的。只有在调用的时刻才知道方法或者属性是否存在,方法的具体行为。Groovy这种动态特性离不开MetaClass的存在,MetaClass是groovy实现MOP的灵魂。 MetaClass接口继承自MetaObjectProtocol。

2010-04-11 02:31:00 953

原创 GROOVY对象模型

Groovy可以以松散的脚本方式来组织代码,也可以以类的方式来组织。Groovy不想其它的脚本语言能够在不完全编译的情况下执行,即一边执行代码,一边写代码,Groovy的代码必须完整装载,分析之后才能够执行。Groovy运行时支持两中对象,Script对象和Groovy class对象这两种对象都统一为GroovyObject这一接口。具体关系如图:   

2010-04-10 18:29:00 1160

转载 Groovy五种特殊预算符

转自http://flowercat.javaeye.com/blog/639125

2010-04-10 18:13:00 716

空空如也

空空如也

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

TA关注的人

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