`
lujiawu12
  • 浏览: 126903 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

groovy学习笔记

阅读更多

groovy

   groovy是java语言的脚本实现,使用标准的java环境。 groovy编译器产生的字节码和java编译器产生的字节码是一样的。

   groovy的运行原理是动态的编译成字节码的,然后再由JVM进行转载,运行

 

   语法简练,易于理解,类java语法

 

   在java中嵌入groovy,有助于编写和集中处理易于变化的业务逻辑,给应用提供了可编程的配置管理能力,是对java语言的一大补充

 

   groovy的优势:

      和java的无缝集成,有更快捷的应用开发能力,灵活但不失去java的健壮性

 

groovy类

wuzhong@TAOBAOWDS46:~/workspace/groovy$ more Test.groovy 
class Test{

    private pri;            //定义了一个Object类型的私有属性
    protected pro;       //定义了一个Object类型的protected属性
    public pub;            //定义了一个Object类型的public属性
    int i;                     //默认是public的,所以定义了一个int public属性
    def a;                    //定义了一个Object public属性
    private hello(){         //定义了一个私有的,返回类型是Object的方法

    }

    def test(){               //定义了一个共有的,返回是Object的test方法
      return 1
    }

}

 

编译groovy脚本groovyc Test.groovy 

得到java的2进制字节码文件: Test.class

打开来瞧瞧 , javap Test

wuzhong@TAOBAOWDS46:~/workspace/groovy$ javap Test
Compiled from "Test.groovy"
public class Test extends java.lang.Object implements groovy.lang.GroovyObject{
    protected java.lang.Object pro;
    public java.lang.Object pub;
    public Test();
    public java.lang.Object test();
   
    public int getI();      //对public自动生成的get和set方法
    public void setI(int);
    public java.lang.Object getA();
    public void setA(java.lang.Object);
    public java.lang.Object this$2$hello();
    ...
    ...
    ...
}

了解这个后,相信大家对groovy就感到十分的熟悉了 ^_^

 

groovy脚本 

wuzhong@TAOBAOWDS46:~/workspace/groovy$ more Hello.groovy 
System.out.println("hello world")
wuzhong@TAOBAOWDS46:~/workspace/groovy$ groovyc Hello.groovy 
wuzhong@TAOBAOWDS46:~/workspace/groovy$ javap Hello
Compiled from "Hello.groovy"

public class Hello extends groovy.lang.Script{
    public Hello();
    public Hello(groovy.lang.Binding);
    public static void main(java.lang.String[]);
    public java.lang.Object run();
    ....
}

    在编译时就把它编译到类了,然后自动生成了main方法,run方法主要就是放刚才的print 业务逻辑的,我们可以看下反编译后的代码:

 public Object run()
    {
        CallSite acallsite[] = $getCallSiteArray();
        return acallsite[1].call(acallsite[2].callGetProperty($get$$class$java$l
ang$System()), "hello world");
    }
 

groovy闭包

和ruby的很类似

又见集合又见和ruby相似的闭包(代码块)
//定义一个List
def num = [1,2,3,4]
num.each{it -> println it*2}
 

参考资料

groovy入门

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

 

groovy与java的异同

http://ivorytower.iteye.com/blog/182547

 

groovy与spring的整合

http://shipmaster.iteye.com/blog/8462741

分享到:
评论

相关推荐

    Groovy学习笔记 PDF版

    在《Groovy学习笔记》这本书中,你可能会学到如何快速入门Groovy,理解其基本语法,包括变量、控制流、类和对象的创建,以及如何利用Groovy的特性来提高开发效率。此外,书中可能还会涵盖Groovy在实际项目中的应用,...

    Groovy 学习笔记

    3. **Groovy Shell和GroovyConsole**: 这两个工具是学习和测试Groovy代码的好帮手,可以快速尝试和验证代码片段。 4. **GString**: Groovy的字符串支持模板语法,可以方便地进行字符串格式化,如`"Hello, ${name}"`...

    Groovy学习笔记.pdf

    Groovy是一种动态、灵活的编程语言,它是Java平台上的一个主要补充,特别是在脚本编写和快速原型设计方面表现突出。...这份"Groovy学习笔记.pdf"应该会提供一个良好的起点,帮助你踏上Groovy的学习之旅。

    Groovy学习笔记

    ### Groovy学习笔记知识点梳理 #### 一、Groovy简介 - **概念**:Groovy是一种灵活的脚本语言,其设计初衷是为了更好地服务于Java开发者。它具备许多现代动态语言的特点,比如Python和Ruby,同时又能够无缝地与Java...

    Groovy学习笔记 Struts2集成--Groovy类作为Action

    通过阅读文章《Groovy学习笔记 Struts2集成--Groovy类作为Action》,你可以更深入地了解如何在实际项目中利用Groovy的特性来优化Struts2应用。提供的压缩包文件`struts2-groovy-plugin`可能包含了Struts2 Groovy插件...

    Groovy语法&Gradle配置学习笔记

    - **闭包和元编程**:深入学习Groovy的两大特色,掌握闭包的使用场景和元编程的应用。 - **Gradle入门**:学习如何创建Gradle项目,配置build.gradle文件,以及执行基本的构建任务。 - **Gradle插件**:了解常用的...

    Scala、Groovy++、Stackless Python、Erlang 学习笔记及分享

    学习Scala,你需要理解其静态类型的特性、模式匹配、 Actors模型以及类型系统,包括高阶函数、特质(traits)和不可变数据结构。 Groovy是另一种基于JVM的动态编程语言,它的语法简洁,易于阅读和编写。Groovy与...

    Java JDK 7学习笔记 PDF

    这个PDF学习笔记是开发者深入理解JDK 7特性和功能的重要参考资料。以下是对Java JDK 7的一些核心知识点的详细阐述: 1. **泛型改进**:在JDK 7中,泛型的使用更加灵活,引入了类型推断(Type Inference)特性,通过...

    读书笔记:函数式编程 scala,java8,groovy 学习.zip

    读书笔记:函数式编程 scala,java8,groovy 学习

    读书笔记:Groovy 程序设计学习.zip

    读书笔记:Groovy 程序设计学习

    GroovyPDF文档

    Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大...本套资源中包含了:Groovy轻松入门 ,Groovy中文教程, Groovy用户指南, Groovy学习笔记,Groovy官方demo,五本书!

    Spring 学习笔记《Spring Boot》源码

    在《Spring Boot》源码学习笔记中,我们可以深入理解其内部工作机制,包括自动配置、起步依赖、命令行接口(CLI)以及如何集成各种组件如JSP等。JSP(JavaServer Pages)是一种用于动态创建网页的技术,Spring Boot ...

    Java JDK 7学习笔记 完整扫描版

    **Java JDK 7学习笔记概述** Java JDK 7(Java Development Kit 7)是Java编程语言的一个重要版本,由Sun Microsystems(后被Oracle公司收购)开发,并于2011年7月28日正式发布。这个版本引入了一系列新特性、改进...

    gradle学习笔记1

    **Gradle 学习笔记** Gradle 是一种高级的构建工具,它与 Maven 类似,主要负责管理和自动化软件项目的构建过程,包括管理依赖、编译、打包和部署等任务。然而,Gradle 提供了比 Maven 更高的灵活性,因为它的构建...

    JDK 6 java 学习笔记的代码

    8. **Scripting API**:JDK 6引入了ScriptEngine接口,允许Java应用程序直接执行脚本语言代码,如JavaScript、Groovy等,增强了Java的动态语言支持。 9. **改进的异常处理**:JDK 6允许在catch子句中捕获多个异常...

    JAVA6.0学习笔记PDF版

    这份“JAVA6.0学习笔记PDF版”是由台湾著名Java培训师温信良编著的,他以其丰富的教学经验和深入的技术理解,为Java初学者和进阶者提供了一本详实的学习资料。 Java 6.0的主要更新和改进包括: 1. **改进的内存...

    gradle学习笔记简书1

    Gradle 学习笔记简书1 本文档将对 Gradle 的基本命令、Groovy 语言基础和闭包委托进行详细的讲解。 Gradle 命令 ------------ ### 1. 生成 Wrapper 使用 `gradle wrapper` 命令可以生成 Wrapper。 ### 2. 打印...

Global site tag (gtag.js) - Google Analytics