Groovy笔记

Groovy 学习:     

1. groovy支持动态类型(不指定变量类型),也支持静态类型。

   List的定义 [],Map的定义  [:] 。

   这两者都支持下标访问。

 

2. 每一行就是一个语句,可以没有分号; 但最好是用分号分隔。

   而同时,groovy一个语句也可以像java一样跨多行。

 

3. 如何定义函数

   在groovy中定义方法同java基本类似,只是return关键字可以不写,返回类型也可以不写(默认是Object)。调用方法时可以不用括号。

 

4. Groovy支持在字符串中包含表达式,类似shell的表达式。是${}或者$形成的,这个是在调用toString()的时候才会求值的。其实此时的字符串是instanceof groovy.lang.GString。

5. 可以直接运行脚本,不用定义一大堆语法结构,那么麻烦。    

    Groovy 的运行:

    在eclipse的IDE环境中,groovy代码是首先编译成了java的字节码(.class文件),然后再运行java程序。

而如果是直接通过groovy运行groovy代码的话,则运行环境如下所示:

java  -Dprogram.name="" -Dgroovy.home="" -Dtools.jar="" -Dgroovy.starter.conf="" -Dscript.name="" -classpath "" org.codehaus.groovy.tools.GroovyStarter --main groovy.ui.GroovyMain --conf "" --classpath ""  D:\temp\testgroovy.groovy

 

例如:

java -Dprogram.name="" -Dgroovy.home="D:\DEV_ENV\groovy-1.6.1" -Dtools.jar="C:\DEV_ENV\Java\jdk1.5.0_11\lib\tools.jar" -Dgroovy.starter.conf="D:\DEV_ENV\groovy-1.6.1\conf\groovy-starter.conf" -Dscript.name="D:\temp\testgroovy.groovy" -classpath "D:\DEV_ENV\groovy-1.6.1\lib\groovy-1.6.1.jar" org.codehaus.groovy.tools.GroovyStarter --main groovy.ui.GroovyMain --conf "D:\DEV_ENV\groovy-1.6.1\conf\groovy-starter.conf" --classpath "C:\DEV_ENV\TimesTen\tt70_32\lib\ttjdbc5.jar;;."  D:\temp\testgroovy.groovy

    Groovy 的主要特性:

  Closure(闭包)的支持

本地的List和Map语法

 Groovy标记:支持多种标记语言,如XML、HTML、SAX、W3C DOM

 Groovy Path表达式语言:类似Xpath

 Groovlet:用简单的Groovy脚本实现Servlet

 Groovy SQL:使得和SQL一起工作更简单

 Groovy Bean:和Bean一起工作的简单语法 Groovy模版引擎:简单使用,集成了Gpath和编译成字节码

 Ant脚本化

正则表达式:简洁的脚本语法使用正则表达式

操作符重载:使Collection和Map的数据类型简单化

多形式的iteration和Autoboxing

直接编译成Java字节码,很干净的和所有已存在的Java对象和类库一起工作    

        

·闭包

闭包类似于java中的内部类,区别在于闭包中只有一个函数定义,参数可以有多个。 闭包用“{}”括起,“->”前面是参数,后面是处理语句,使用call调用。

 

 

 

 

 

//闭包调用是使用call

 

def closure1 = {str1,str2 ->

    println str1 +","+ str2;

 }

closure1.call("a","b");

 

 

 

//定义闭包

 

def closure2 = {println it};

//定义方法

def foo(temp){

    temp.call("hello");

    temp.call([1,2]);

}

 

//传递闭包给方法

foo(closure2);

//或者直接是

foo( {println it} );

 

 /**

  * 传递闭包给方法2

  */

//it是关键字

//将输出List的每一个元素

def testList = [1,2,3,5];

testList.each{println "${it}"};

 

//->操作符

def testList = [1,2,3,5];

testList.each{item -> print item+";"};

       

grails的文档手册:

        http://www.chinagroovy.org/grails-doc/index.html

        http://grails.org/doc/latest/

 

 

技术面 - 手撕算法题整理 这篇博客整理了华为OD面试中涉及的算法题,包括LeetCode热门题目、OD原题和需要手写的算法,如二分查找、冒泡排序等。建议优先刷"hot100"的LeetCode题目,全刷OD原题,以及掌握手撕算法的基本原理。 阅读详情

相关推荐

从零开始:H20服务器上DeepSeek R1 671B大模型部署与压力测试全攻略

最近,我有幸在工作中接触到了DeepSeek R1 671B模型,这是目前中文开源领域参数量最大的高质量模型之一。DeepSeek团队在2024年推出的这款模型,以其惊人的6710亿参数量和出色的推理性能,引起了业界广泛关注。作为一名AI基础设施工程师,我有机会在H20服务器上部署这个庞然大物,并对其进行了全面的压力测试。这篇文章将详细记录我的部署过程和性能测试方法,希望能为大家提供一些参考。💡为什么选择DeepSeek R1?超大规模参数量(671B)优秀的中英文理解能力开源可商用的许可证。

wangli的博客 1万+

Groovy深入探索——Groovy的ClassLoader体系

Groovy中定义了不少ClassLoader,本文将介绍其中绝大多数Groovy脚本都会涉及到的,也是最主要的3个ClassLoader:RootLoader、GroovyClassLoader和GroovyClassLoader.InnerLoader。 注:以下分析的Groovy源代码来自Groovy 2.1.3。 Java的ClassLoader 顾名思义,Java的ClassLoader...

chengbinbbs的专栏 6523

广东省道路工程检测练习试题(单选题)真题

1.一般项目的合格点率应达到( ),且不合格点的最大偏差值不得大于规定允许偏差值的1.5倍。A.不低于75%B.不低于80%C.不低于85%D.不低于90%答案:B2.进行土路基平整度检测时,当路宽小于9m,检测点数应为( )A.1B.2C.3D.4答案:A3.根据《城镇道路工程施工与质量验收规范》,在分部工程中,根据工种、材料、施工工艺等划分的是( )A.单位工程B.分项工程C.分部工程D.工序工程答案:B4.根据《城镇道路工程施工与质量验收规范》,土方路基压实度的检测频率为每1000m每压实层抽检( )

ZShy001238的博客 685

groovy java home_Groovy入门篇--Getting started

1.设置Java环境Groovy需要Java,所以你需要有一个Java的可用版本(1.4或是更高).如果你还没有安装Java,可按照下面一步步的进行:执行安装程序设置JAVA_HOME环境变量.在Window上的话,参照下面的步骤:打开系统属性面板点击高枝标签点击环境变量按钮添加一个新的系统变量,名为JAVA_HOME和Java的安装目录(我的是:D:\Program Files\jdk1.6.0...

weixin_29858081的博客 312

【2025年美团春招(算法岗)-3月15日-第三题(300分)- 字符串权值】(题目+思路+Java&C++&Python解析+在线测试)

小美定义一个字符串的权值为:其长度为3的回文子序列数量。例如,“abca"的权值为2,因为包含两个回文子序列"aba"和"aca现在给定一个仅包含小写字母的字符串,小美希望你输出该字符串每个前缀的权值。

m0_73659489的博客 312

Windows 11 安装 Maven:下载、安装、配置国内镜像、验证

本文详细介绍了在 Windows 11 系统中安装与配置 Apache Maven 的完整流程,包括 JDK 环境准备、Maven 下载解压、本地仓库路径设置、阿里云国内镜像加速配置、环境变量设置及安装验证。同时提供了常用 Maven 命令速查表,帮助开发者快速上手依赖管理与项目构建,提升开发效率。

寒水馨 · 轻量级技术文档 · hanshuixin.org 1506

[翻译]Groovy入门指南——01初学者教程

  [翻译]Groovy入门指南   ——01初学者教程   欢迎搭乘Groovy航班,在通过本教程出发前,请一定系好安全带,我们将飞向更高水平。 本文想要帮助你开始使用Groovy,接下来的教程将以:使用脚本语言进行数据计算和文本处理为主要目标和线索。   Graham Miller,是一个Groovy爱好者,他曾讲授过数据挖掘业务相关 的课程 。他向Groo...

长安新都市业主家园 273

【Flink】Flink提交任务到Yarn报错Unable to close file because the last blockBP enough number of replicas

当使用 HDFS 存储文件时,每个数据块会有多个副本分布在不同的节点上,以确保数据的可靠性和容错性。然而,由于某种原因,最后一个数据块 blk_1101776325_28036289 的副本数量不足,导致无法成功关闭文件。如果确定副本数量正确,并且问题仍然存在,可以尝试手动修复副本不足的情况。异常消息表明在关闭文件时出现问题,我的原因是hadoop上有个节点有问题,导致提交到那个节点的时候,无法传递包到相关的机器上。检查 HDFS 集群的状态,确保所有节点都正常工作,没有节点宕机或网络故障等问题。

九师兄 935

[原创]Groovy之旅系列一(Groovy初体验)

        Groovy是一种基于Java平台的敏捷的动态语言。如果您还不了解Groovy是什么,建议您去它的主页观摩一下。http://groovy.codehaus.org/     首先要抢建Groovy开发环境,当然您必须已经安装并配置好JDK.这里就不再详解JDK环境怎么配置了, 当然有一点要注意,一定要设置JAVA_HOME为你的JDK安装路径,大小写和下划线区分哦。(不然Groo...

上善若水 299

Python爬虫实战:抓取全球船舶AIS定位数据的全流程指南

AIS(Automatic Identification System)自动识别系统是目前全球航运中用于实时跟踪船只位置的主要技术。名称、MMSI编号、呼号实时经纬度船速、航向吃水、目的港状态(航行/停泊/锚泊)航线信息等🛰️海上运输监控:追踪航线,预估到港时间;🛳️船舶管理系统:为物流、港口运营提供决策依据;🌊研究分析:如海洋运输碳排放研究、船只拥堵热力图等;🧠人工智能训练数据集:用于轨迹预测、碰撞预警模型。

2201_76125261的博客 1364

以 Cloud 为核心的设备 mTLS 证书体系:从产品需求到 OP-TEE 安全落地

本文探讨了以云端为核心的物联网设备mTLS证书体系构建方案。文章从产品需求出发,分析了云端必须采用mTLS+证书体系管理设备身份的原因,指出静态Token方案的三大缺陷:身份不可控、运营不可控和审计不可控。重点阐述了mTLS在产品中的核心功能是加密传输和双向认证,并详细列出了云端PKI、设备注册中心等必备组件。在设备侧,强调必须通过OP-TEE技术保护私钥安全,提出了一个包含密钥生成、CSR导出等功能的TA设计方案。最后,文章给出了云端端到端流程示例,说明如何将证书生命周期管理转化为可运营的产品能力,包括自

Interview_TC的博客 642

Groovy使用之:开始Groovy之旅

曾有大师级的人物预言未来属于动态语言。Groovy就是java世界的动态语言。这篇文章只是groovy的一个热身。 1、安装JDK环境 Groovy需要JDK1.4以上版本的支持。因此在安装groovy时首先要安装JDK。 JDK安装步骤: [list] [*]下载最新的JDK版本。(下载网址:http://java.sun.com) [*]运行安装文件。(更改安装路径到:D:\j...

追求简单 337

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Groovy笔记(三)之集合

文章目录ListMap List List的创建与元素获取 class ListTest { public static void main(String[] args) { //创建ArrayList def list = [1, 2, 3, 4, 5] //[1, 2, 3, 4, 5] ...

jannal专栏 1901

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Groovy 笔记

作者:江南白衣 1.Groovy的最新八卦之处1.1 Wiki: http://docs.codehaus.org/pages/listpages.action?key=GROOVY 1.2 Mail list的在线浏览和rss定阅        Developer List http://dir.gmane.org/gmane.comp.lang.groovy.devel        User

花钱的年华 3578

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

groovy学习笔记 (完善中)

 GROOVY 学习笔记(待完善)-netdevgirl先记下一些主要问题,等待有时间的时候来完善。groovy 官网:http://groovy.codehaus.org/groovy API 网址:http://groovy.codehaus.org/api/index.htmlgroovy 简介: groovy 环境配置: groovy 在IDE 中的配置

netdevgirl的专栏 1254

【Groovy】 Groovy笔记

一.简单了解Groovy   Groovy简介:     Groovy是基于JVM的敏捷开发语言,语法与Java类似,但更加简洁,容错性也比Java强,同时Java能非常好的契合(例如Groovy能够使用Java的所有类库)   特性:     1.语法上支持动态类型,闭包等新一代语言特性     2.既支持面向对象编程,也支持面向过程编程     3.既可以作为编程语言,也可以作为脚...

weixin_34137799的博客 187

groovy笔记

文章目录安装基本语法 安装 Step1:配置JDK Groovy是依赖于Java的,所以首先要配置好JDK。 Step2:下载Groovy 下载后直接解压安装。 Step3:配置Groovy环境变量 GROOVY_HOME = C:\workenv\Java\groovy\groovy-2.5.8 PATH = %GROOVY_HOME%\bin Step4:测试 groovy -v ...

yanggleyang的博客 294

三天学通 Groovy—Groovy 程序设计,Groovy 中的运算符,笔记14-22

三天学通 Groovy—Groovy 程序设计,Groovy 中的运算符,笔记14-22

道友 347

Groovy学习笔记

public Method&Field默认是public的 Range def repeat(val){ for(i in 0..5){ println val } } 上面的代码将打印6次,原因是前后都是close的 默认参数值 def repeat(val, repeat=5){ for(i in 0..<repeat){ println val } } Li...

Qbit编程学习笔记 213

Groovy学习笔记之Groovy的下载和安装

Groovy学习笔记之Groovy的下载和安装 1. 下载地址   http://www.groovy-lang.org/download.html   进入页面后找到如下图找到如下图所示位置,如果不能翻墙可以使用如下 https://pan.baidu.com/s/1_u9Q8wNM5JvflvBJ3em3IQ 目前比较新的版本是2.5.3,所以我们就使用2.5.3版本,箭头1所示的下载文件包含...

introspection的博客 2549

groovy学习笔记

groovy学习笔记 http://www.groovy-lang.org/documentation.html

army的专栏 1610

Groovy的学习笔记

Groovy的学习笔记 文章目录Groovy的学习笔记1. Groovy简介2. 准备工作3. Groovy 语法基本语法定义变量定义函数断言 assert循环 for循环 time三目运算符捕获异常switch判断是否为真asTypeGroovy 数据类型Java 基本类型Groovy 容器闭包Java属性运行原理Script 类脚本变量的作用域JSON 操作对象转json、json转对象集合对象转json 、json转集合对象 1. Groovy简介 Groovy 是一种动态语言,它和Java类似(算

weixin_45866849的博客 1148
上一篇: common-pool笔记
下一篇: Java的考证
csbison
博客等级 码龄23年 1粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值