文章目录

  • 一、Groovy 支持 Java 语法
  • 二、Groovy 支持 Java 虚拟机
  • 三、Groovy 语言是 动态语言
  • 四、Groovy 扩展 JDK
  • 五、Groovy 编译时元编程

一、Groovy 支持 Java 语法


Groovy 语言与 Java 语言可以无缝衔接 , 在 Groovy 中 , 可以 完全使用 Java 语法进行开发 ;

从 " 能否使用 Java 语法 " 角度出发 , Groovy 语言比 Kotlin 语言更方便 , Kotlin 中无法使用 Java 语法 , 而 Groovy 可以 , 因此 Java 开发者直接就可以进行 Groovy 开发 ;

二、Groovy 支持 Java 虚拟机


Groovy 语言是 基于 Java 虚拟机的 ;

Groovy 即可以实现 面向对象 编程开发 , 又可以进行 独立脚本开发 ;

三、Groovy 语言是 动态语言


Groovy 是一门 动态语言 , 与之相对的 , Java 是一门静态语言 ; 具体就是 在声明变量前 , Java 语言必须声明该变量的类型 , 而在 动态语言中 , 在 运行时才检查变量类型 , 声明变量时 , 可以暂时不指定变量类型 ;

Groovy 使用 def 声明变量 , 在声明时 , 可以暂时不指定变量类型 ;

动态语言 中 变量的具体类型 , 取决于为其赋值的类型 , 如果为 变量设置 字符串 , 则该变量就是字符串类型 ; 如果为 变量 赋值 1 , 则该变量的类型就是 int 类型 ;

Kotlin 也是一门动态语言 , 使用 var 声明变量 ;

四、Groovy 扩展 JDK


在 Groovy 中 , 可以使用 JDK 中的所有 API , 同时还可以对 JDK 中的 API 进行扩展 ;

如 : 在 Java 中读取文件 , 首先要创建 File 对象 , 然后获取输入流 FileInputStream , 使用缓冲区读取 , 这个操作步骤很繁琐 ;

对上述 File 读取文件进行 API 扩展 , 可以使用一行代码 , 读取文件中的数据 , 相当于开发了一个读取文件的工具类 ;

五、Groovy 编译时元编程


Groovy 可以实现 编译时元编程 , 类似于编译时技术 APT 中的 注解处理器 ;

在编译工程时 , 可以动态执行 注入方法 , 拦截方法 , 合成方法 , 委托方法 等 操作 ;

如 : 编译时 , 从服务器获取一个方法 , 借助 Groovy 元编程 , 可以将该方法动态地插入到 Groovy 方法中执行 ;

一些收费的 API 函数库 , 可以借助该方法 , 实现 API 的加密操作 ; 如 : 编译时 , 从服务器获取密钥 , 对比本地的密钥是否合法 , 确定是否要进行后续编译过程 ;

【Groovy】Groovy 语言特点简介 ( 支持 Java 语法 | 支持 Java 虚拟机 | Groovy 语言是动态语言 | Groovy 扩展 JDK | 编译时元编程 )相关推荐

  1. 【Groovy】编译时元编程 ( ASTTransformation#visit 方法简介 | org.codehaus.groovy.ast.ModuleNode 脚本节点 )

    文章目录 一.ASTTransformation#visit 方法简介 二.org.codehaus.groovy.ast.ModuleNode 脚本节点 一.ASTTransformation#vi ...

  2. 【Groovy】编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 )

    文章目录 一.编译时元编程引入 二.声明需要编译时处理的类 三.分析 Groovy 类的 AST 语法树 一.编译时元编程引入 在之前的 " [Groovy]MOP 元对象协议与元编程 &q ...

  3. 【Groovy】编译时元编程 ( 方法拦截时用到的 AST 语法树节点 MethodNode 节点 | MethodNode 节点分析 | MethodNode 节点中的BlockStatement)

    文章目录 一.方法拦截时用到的 AST 语法树节点 MethodNode 节点 二.MethodNode 节点分析 三.MethodNode 节点中的 BlockStatement 集合 一.方法拦截 ...

  4. 【Groovy】编译时元编程 ( AST 语法树分析 | ClassNode 根节点 | 方法 Methods 节点 | 字段 Fields 节点 | 属性 Properties 节点 )

    文章目录 一.AST 语法树分析 一.AST 语法树分析 在上一篇博客 [Groovy]编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 ) ...

  5. 【Groovy】编译时元编程 ( 编译时方法注入 | 使用 buildFromSpec、buildFromString、buildFromCode 进行方法注入 )

    文章目录 一.在 MyASTTransformation#visit 方法中进行方法注入 1.使用 new AstBuilder().buildFromSpec 进行方法注入 2.使用 new Ast ...

  6. 【Groovy】编译时元编程 ( 编译时方法拦截 | 在 MyASTTransformation#visit 方法中进行方法拦截 )

    文章目录 一.在 MyASTTransformation#visit 方法中进行方法拦截 二.完整代码示例及进行编译时处理的编译过程 1.Groovy 脚本 Groovy.groovy 2.ASTTr ...

  7. 【Groovy】编译时元编程 ( 利用注解进行 AST 语法树转换 | 定义注解并使用 GroovyASTTransformationClass 注明 AST 转换接口 | AST 转换接口实现 )

    文章目录 一.利用注解进行 AST 语法树转换 1.定义注解并使用 GroovyASTTransformationClass 注明 AST 转换接口 2.AST 转换接口实现 3.定义 Groovy ...

  8. 【Groovy】编译时元编程 ( ASTTransformation#visit 方法中访问 Groovy 类、方法、字段、属性 | 完整代码示例及进行编译时处理的编译过程 )

    文章目录 一.ASTTransformation#visit 方法中访问 Groovy 类.方法.字段.属性 二.完整代码示例及进行编译时处理的编译过程 1.Groovy 脚本 Groovy.groo ...

  9. 【Groovy】编译时元编程 ( ASTTransformation#visit 方法获取 Groovy 源文件 )

    文章目录 一.ASTTransformation#visit 方法获取 Groovy 源文件 二.完整代码示例 1.Groovy 脚本 Groovy.groovy 2.ASTTransformatio ...

最新文章

  1. 干货:排名前 16 的 Java 工具类!
  2. 将BYTE[] 输出到edit控件中
  3. 猛男把400+条猫咪叫声做成数据集,可识别猫咪的3种不同状态丨开源
  4. 微信小程序 wx:key 提示-解决
  5. 执行python文件报错SyntaxError: Non-ASCII character '\xe8' in file, but no encoding declared
  6. 菜鸟涂鸦作品展_No.27
  7. 华思视频 CCNA 听而思
  8. 如何找到odata服务实现的具体backend 系统
  9. ssh不能进入save方法_快速理清为什么你的redis未授权不能getshell
  10. 【C/C++】最大公约数和最小公倍数(辗转相除、更相减损、stein)
  11. MySql Workbench表PK UN UQ B等字符的含义
  12. 零基础怎么玩转可视化大屏?这个工具只需5步!
  13. 如何打造工业物联网帝国?
  14. shell 脚本随机抽取班级学生
  15. Maven安装教程详解
  16. 项目管理十大知识领域之项目整合管理
  17. instant java,java.time.Instant.compareTo()方法
  18. 服务器 虚拟机 融合,爱数AnyVM与VMware的全面融合
  19. marvin java_JAVA使用Marvin在图片中搜索图片
  20. ##英语文本的单词统计 排序并输出前5%

热门文章

  1. STORM_0001_用vmware拷贝出三个相同的ubuntu搭建小的zookeeper集群
  2. 【原译】简单的Malloc实现
  3. WinForm创建系统托盘以及操作注册表
  4. 运维笔试Python编程题
  5. b站编程课程资源汇总
  6. python reduce()函数
  7. 【缅怀妈妈系列诗歌】之十:妈妈,孩儿答应您
  8. javascript经典广告代码.rar
  9. Python之迭代器和生成器
  10. 【数据结构(C语言版)系列一】 线性表