当前位置: 首页 > news >正文

Groovy学习随笔之一

基于JVM的各种语言最近似乎越来越流行,这也许跟Sun被Oracle收购有关,至少我是那个时候才了解到这些,因为那段时间网上关于Java的讨论特别多,有人担心起Java的前途,进而有人在寻找Java的替代者或补充语言。在51cto上看到有各种关于基于JVM的语言的讨论。对于这些话题,我没有资格讨论什么,也不想讨论什么。只是一直想学一门基于JVM的语言(当然除Java外),曾经打算学习Scala,后来放弃了,语法太晦涩,太与众不同。
 
前两天,一个偶然的机会,下定决心学习一门基于JVM的语言,然后选择了Groovy。选择它有很多原因,其中最重要的原因有两个:1、几乎完全兼容Java语法,可以与Java无缝集成,学习很快;2、Groovy是一门动态脚本语言,这正是我想学习的。于是决定学习Groovy。在学习过程中,会记一些学习笔记,一来方便以后复习;另一方面也希望能够与初学者一起共同学习、进步。
 
下面简要介绍一下Groovy。
 
1、Groovy比较“帅”
 
groovy这个单词是“时髦”的意思,可以理解为帅。为什么呢?
 
Groovy是Java平台上的脚本语言,抽象程度更高,可以更简单快速地开发,编写更少的代码。与Java语言无缝集成,使用“类Java语法”,与Java二进制兼容,都生成字节码,所以可以与使用Java语言所编写的框架和组件完美集成,并且效率安全方面比其他脚本语言要高。
 
Groovy对象就是Java对象,使用与JDK相同的API。另外可以保护整个Java产业在Java上的巨大投资。
 
在中小型项目中,Groovy可以代替Java,在大型Java项目中,可以嵌入Groovy应用。
 
2、Groovy的特征
 
Groovy = Java - 重复的样板代码 + 可选的动态类型 + 闭包(closures) + 领域规范语言(DSL) + 生成器(builders) + 元编程(metaprogramming)。
 
Java默认只导入java.lang.*,而Groovy默认导入ava.lang.*, java.util.*, java.net.*, java.io.*, java.math.BigInteger, java.math.BigDecimal,   groovy.lang.*, groovy.util.*
 
不少语法是可以省略的,如类型、修饰符和return等。
 
在 http://www.blogjava.net/BlueSUN/archive/2007/04/23/112978.html上有很多可供参考的资源。当然官方网站上的资料更权威,只是是E文的,E文好的最好看官方文档,还可以看《groovy in action》。



     本文转自polaris1119 51CTO博客,原文链接:http://blog.51cto.com/polaris/384908 ,如需转载请自行联系原作者



相关文章:

  • 归纳总结Android的点击事件
  • 关于从子窗口获取内容并填充到父窗口元素中的方法
  • msyql sql优化一列
  • 项目同步部署
  • Nessus的安装/激活/更新
  • tail
  • Nginx和Nginx+的比较(上)
  • JDBC+Servlet+JSP整合开发之25.JSP动作元素
  • mysql基础(3)-高级查询
  • SpringMVC3.1.1+Spring3.1.1+Hibernate4+Velocity+EasyUI+ZTree实现RBAC基于角色的访问控制(二)...
  • 设置RMAN的备份路径
  • uboot移植(三)——uboot mkconfig脚本分析
  • .NET文档生成工具ADB使用图文教程
  • Java中Enum枚举的使用
  • 【解决数据中心网速慢的八个检查必备步骤】
  • JavaScript 如何正确处理 Unicode 编码问题!
  • Fastjson的基本使用方法大全
  • github从入门到放弃(1)
  • mysql innodb 索引使用指南
  • OSS Web直传 (文件图片)
  • Redis在Web项目中的应用与实践
  • vue的全局变量和全局拦截请求器
  • 关于 Cirru Editor 存储格式
  • 回顾 Swift 多平台移植进度 #2
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 运行时添加log4j2的appender
  • 自定义函数
  • 2017年360最后一道编程题
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 通过调用文摘列表API获取文摘
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • #android不同版本废弃api,新api。
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (day6) 319. 灯泡开关
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (力扣)循环队列的实现与详解(C语言)
  • (三分钟)速览传统边缘检测算子
  • (四)JPA - JQPL 实现增删改查
  • (一)appium-desktop定位元素原理
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • .apk文件,IIS不支持下载解决
  • .form文件_SSM框架文件上传篇
  • .net 4.0发布后不能正常显示图片问题
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .Net IE10 _doPostBack 未定义
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET中使用Protobuffer 实现序列化和反序列化
  • /etc/sudoer文件配置简析
  • @Conditional注解详解
  • @hook扩展分析
  • [100天算法】-实现 strStr()(day 52)