groovy
文章平均质量分 73
will的猜想
这个作者很懒,什么都没留下…
展开
-
Java执行groovy脚本的两种方式
https://www.cnblogs.com/dandelion200/p/14683609.html转载 2022-07-06 10:46:16 · 3589 阅读 · 0 评论 -
groovy脚本导致的FullGC问题
这个是由一个线上问题导致的:背景: 应用中内嵌了groovy引擎,会动态执行传入的表达式并返回执行结果 线上问题:发现机器的fullGC从某个时候开始暴涨,并且一直持续; 登到机器上,用jstat -gcutil 命令观察,发现perm区一直是100%,fullGC无法回收; 将这台机器的内存dump出来进行分析; 在类视图中,发现大量的groovy.lang.GroovyCla...转载 2019-01-07 19:33:39 · 1664 阅读 · 0 评论 -
Groovy:程序员的 DSL
什么是DSL?领域特定语言,针对一个特定的领域,具有受限表达性的一种计算机程序语言。可以看做是一种抽象处理的方式。具有四个元素,第一个是计算机程序设计语言,使用DSL来指挥计算机做事情,语言性(一种特定的语言),受限的表达性,并不像同通用的设计语言那样具有广泛的能力,针对一个明确的领域。分类有哪些?外部DSL:不同于应用系统主要使用语言的语言,通常采用自定义语法,宿主应用的代码采用文本解析技术对外...转载 2018-06-29 14:14:19 · 2100 阅读 · 0 评论 -
groovy与java集成的方式
摘要: groovy特性 Groovy是一门基于JVM的动态语言,同时也是一门面向对象的语言,语法上和Java非常相似。它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。 Java作为一种通用、静态类型的编译型语groovy特性Groovy是一门基于JVM的动态语言,同时也是一门面向对象转载 2018-01-11 16:43:45 · 752 阅读 · 0 评论 -
Closure
这篇文章介绍一下Closure的一些语法特性,以及它的使用方法,我们用规则以及代码的方法进行展现,和介绍MetaClass不同的是,这次我们将先列出规则,再贴上代码,让大家对所阐述的目标更加明确。 一、代码块(Blocking)在介绍闭包前,先来讲几个Groovy中代码块的一些特性。1.groovy的变量作用域和java相似,代码块内部声明的变量不能被外部访问调用。转载 2017-11-28 23:44:48 · 536 阅读 · 0 评论 -
Closures(闭包)
Closures(闭包)本节主要讲groovy中的一个核心语法:closurs,也叫闭包。闭包在groovy中是一个处于代码上下文中的开放的,匿名代码块。它可以访问到其外部的变量或方法。1. 句法1.1 定义一个闭包{ [closureParameters -> ] statements }其中[]内是可选的闭包参数,可省略。当闭包带有参数,就需要->来将参数和闭包体相转载 2017-11-28 23:41:37 · 528 阅读 · 0 评论 -
groovy之closure
什么是闭包(Closure)在Groovy中,闭包是一段匿名的代码段,它可以有参数,返回值,并且能够赋值给一个变量。闭包中使用的变量可以是在闭包外部定义的,也可以是在闭包内部定义的。闭包定义的语法如下{[closureParameters ->] statements}上面的方括号[]表示闭包的参数可有可无,所以正常的闭包可能包括如下这些类型:{item++} //item变量定义在闭包之外...转载 2017-11-28 19:15:24 · 2525 阅读 · 0 评论 -
groovy闭包
Groovy是增强Java平台的唯一的脚本语言。它提供类似于Java的语法,内置映射(Map)、列表(List)、方法、类、闭包(closure)以及生成器。Groovy是动态弱类型语言,即Groovy不要求声明变量的类型、方法的参数或者方法的返回值。这意味着在不同环境下,变量可以以多种方式使用。Groovy类和Java是二进制兼容的。这意味着Groovy编译器产生的字节码与Java编译器转载 2017-11-28 17:20:03 · 347 阅读 · 0 评论 -
正则表达式
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式。 Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编...转载 2017-11-09 17:49:02 · 514 阅读 · 0 评论 -
Groovy常用语法总结
过去半年都在写Groovy,基本都是在实战中学习,从java转过来,也还没什么问题,毕竟基础,架构都没变。Groovy的强大特性中,Closure,MetaClass都尝试过,Closure基本上就是当方法或者回调接口使用,再高级的用法就没用过了,没有特别体会什么好处,当回调接口就是省的定义接口,简洁了一些;MetaClass就有专门为一个模块做了些MetaClass,和GORM差不多的,转载 2017-11-09 17:13:27 · 511 阅读 · 0 评论 -
groovy安装
Step1:配置JDKGroovy是依赖于Java的,所以首先要配置好JDK。Step2:下载Groovy下载地址,下载下来解压即可。Step3:配置Groovy环境变量vim ~/.bash_profile输入# groovyexport PATH=$PATH:/Users/xuhongchuan/install/groovy-2.4.4/bin...转载 2017-11-08 10:28:29 · 1145 阅读 · 0 评论 -
groovy之范围特性
ranges用..表示范围操作符,用来指定左边界和右边界 ep: (0..10) -> 01234567890..<操作符指定了半排除范围,不包含右边界 ep:(0..<10) -> 0123456789range也可以通过显示方法创建:def a = new IntRange(0,10)Range主要方法range主要有如下方法:1.contains:是否包含一个元素。a...转载 2017-11-08 11:37:00 · 769 阅读 · 0 评论 -
Groovy高效编程——‘匕首方法’的使用
Groovy提供了许多‘匕首方法’(匕首,短小精悍也~如each,eachWithIndex,any,every,grep,join,sort,find,findAll,collect,groupBy,inject,reverse,tokenize, unique,max,min,count,sum等)来提升开发者的开发效率,但常被Java开发人员忽视。在这篇随笔中我将为您演示各方法的使用。转载 2017-11-08 13:49:14 · 500 阅读 · 0 评论 -
groovy之list和map方法
java作为一门强大的系统编程语言,已经在世界各地广泛地应用.groovy是增强java平台的唯一脚本语言,它的语法更 加简洁,能快速开发. List: 定义list:def list = [] list = [1,2,3,4,5] list操作: def list = [1,2,3,4,5] list[1] //Result: 2 list[原创 2017-11-08 13:57:46 · 5066 阅读 · 0 评论 -
Groovy集合(map)
声明mapMap的规范和上一篇博客提到的list类似,helist一样,Map保证可以通过下标来获取或者设置值,不同的是map可以使用任何类型作为下标操作符的参数,而list仅仅支持整数,list知道list中元素的顺序,而map一般不知道,特殊的map如java.util.TreeMap也可以知道他们的key的顺序。理论上 ,任何类型都可以作为map的键(key)或者值(valu转载 2017-11-08 13:58:22 · 2365 阅读 · 0 评论 -
Groovy集合(list)
声明listlist = [1,2,3]list = (1..3).toList() //range转换为listassert list == [1,2,3]assert list[1] == 2assert list instanceof java.util.Listlist[1] = 12assert list == [1,12,3]longList = (0..100)a...转载 2017-11-08 13:59:26 · 4328 阅读 · 0 评论 -
groovy之字符串
文本文字以字符链的形式表示被称作字符串。脚本语言在字符串处理方面比主流的应用程序开发语言做的更好。Groovy就提供了许多附加的特性。在Groovy中有两种风格的字符串:String(java.lang.String)和GString(groovy.lang.GString)。GString允许有占位符而且允许在运行时对占位符进行 解析和计算。字符串方法与java不同,在GString中提供了多种...转载 2017-11-08 14:05:03 · 3482 阅读 · 0 评论