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

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

文章目录

一、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 的加密操作 ; 如 : 编译时 , 从服务器获取密钥 , 对比本地的密钥是否合法 , 确定是否要进行后续编译过程 ;


目录
相关文章
|
6月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
281 4
|
6月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
442 18
|
7月前
|
Java
Java基础语法与面向对象
重载(Overload)指同一类中方法名相同、参数列表不同,与返回值无关;重写(Override)指子类重新实现父类方法,方法名和参数列表必须相同,返回类型兼容。重载发生在同类,重写发生在继承关系中。
212 1
|
7月前
|
存储 SQL NoSQL
Redis-常用语法以及java互联实践案例
本文详细介绍了Redis的数据结构、常用命令及其Java客户端的使用,涵盖String、Hash、List、Set、SortedSet等数据类型及操作,同时提供了Jedis和Spring Boot Data Redis的实战示例,帮助开发者快速掌握Redis在实际项目中的应用。
607 1
Redis-常用语法以及java互联实践案例
|
7月前
|
存储 Java Apache
Java语言操作INI配置文件策略
以上步骤展示了基本策略,在实际项目中可能需要根据具体需求进行调整优化。例如,在多线程环境中操作同一份配置时需要考虑线程安全问题;大型项目可能还需考虑性能问题等等。
319 15
|
8月前
|
算法 Java 测试技术
零基础学 Java: 从语法入门到企业级项目实战的详细学习路线解析
本文为零基础学习者提供完整的Java学习路线,涵盖语法基础、面向对象编程、数据结构与算法、多线程、JVM原理、Spring框架、Spring Boot及项目实战,助你从入门到进阶,系统掌握Java编程技能,提升实战开发能力。
550 0
|
8月前
|
存储 Java 容器
Java基本语法详解
本文深入讲解了Java编程的基础语法,涵盖数据类型、运算符、控制结构及数组等核心内容,帮助初学者构建坚实的编程基础。
|
8月前
|
算法 Java
Java语言实现链表反转的方法
这种反转方法不需要使用额外的存储空间,因此空间复杂度为,它只需要遍历一次链表,所以时间复杂度为,其中为链表的长度。这使得这种反转链表的方法既高效又实用。
633 0
|
8月前
|
JSON Java API
【干货满满】分享拼多多API接口到手价,用Java语言实现
本方案基于 Java 实现调用拼多多开放平台商品详情 API,通过联盟接口获取商品到手价(含拼团折扣与优惠券),包含签名生成、HTTP 请求及响应解析逻辑,适用于电商比价、导购系统集成。
|
8月前
|
JSON Java API
【干货满满】分享京东API接口到手价,用Java语言实现
本示例使用 Java 调用京东开放平台商品价格及优惠信息 API,通过商品详情和促销接口获取到手价(含优惠券、满减等),包含签名生成、HTTP 请求及响应解析逻辑,适用于比价工具、电商系统集成等场景。