- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 13.Groovy元编程源码分析
2021SC@SDUSC13.Groovy元编程源码分析元编程相关的类呢,就都在lang包中。首先,编程我们都知道是创建一些类,然后为类去写一些属性和方法,那元代表什么呢,其实,元就是一个特殊的属性,我们到源码里来看一下是那个属性。public interface GroovyObject { Object invokeMethod(String var1, Object var2); Object getProperty(String var1); void setProperty
2021-12-27 18:38:17
374
原创 12.Groovy重要类源码
12.Groovy重要类源码今天要分析的主要代码是在groovy包下的,我们由易到难依次来分析一下这个包中的源码。这个包下大家如果打开源码的话,可以看到,其中的包非常的多,但大部分都是我们在写gradle或者groovy脚本时用不到的,我们最常用到的包就是:json xml lang这三个包,我们重点分析这三个包下的一些核心类,来看一下他们的作用。第一部分:json package这个package大家一看就可以知道,是提供对json格式的文件,数据等进行一些操作的,比java中确实要强大的多。pack
2021-11-29 20:14:16
1914
原创 11、Groovy类和对象的源码探讨
11、Groovy类和对象的源码探讨Groovy类的特色我们知道,Groovy的类和对象相较于java有了一些新的特色:(1)不需public修饰符,Groovy的默认访问修饰符就是public(2)不需要类型说明,Groovy也不关心变量和方法参数的具体类型。(3)不需要getter/setter方法,所有类成员(如果是默认的public)根本不用通过getter/setter方法引用它们(当然,如果一定要通过getter/setter方法访问成员属性,Groovy也提供了它们)。(4)不需要
2021-10-08 17:14:12
295
原创 10、Groovy实现代码热载的机制和原理
10、Groovy实现代码热载的机制和原理我们知道,Groovy在很大一部分的用途是在java工程里面穿插使用的,本文的主题是Groovy实现代码热载,,其他大背景是java实现主干代码,,groovy实现易变动的逻辑代码. 先来看下java是如何调用的groovy脚本的。Groovy代码热载例子import groovy.lang.Binding;import groovy.lang.GroovyShell; public class GroovyTest { public sta
2021-10-07 23:53:30
614
原创 9、Groovy闭包源码分析
9、Groovy闭包源码分析闭包是什么Groovy 中闭包是最有用的特性之一,也是非常重要的特性,可以说 Groovy 精髓都围绕闭包。一个闭包是被包装为一个对象实例的代码块,实际上闭包像一个可以接受参数并且能够有返回值的方法。闭包是一个普通对象,因为你能够通过一个变量引用到它,正如你能够引用到任何别的对象一样。基于 Groovy 语言本质介绍可以知道,JVM 根本就不知道你正在运行 Groovy 代码,所以 Groovy 闭包是一个普通对象是很自然的现象。Groovy 在集合对象上增加了许多
2021-10-07 21:28:04
258
原创 6、Groovy拓展方法与对象的关联方式
Groovy拓展方法与对象的关联方式问题引入在上次的博客上分析Groovy的拓展方式时,我们举过这个例子:String content = new File('config.txt').textprintln content我们知道text是IOGroovyMethods类里面的拓展方法,但这时,又有一个新的问题产生了,File类型怎么可以直接调用IOGroovyMethods里面的方法呢?就让我们在这节博客根据源码深入探讨一下这个问题。Groovy反射由于在String类型里面并没有tex
2021-10-03 20:21:29
268
原创 5、Groovy中对java类的拓展类分析
Groovy中对java类的拓展类分析问题的引入在学习Groovy的语法及其方法的时候,我偶尔看到了Groovy中对于txt文件引入输出的方法:String content = new File('config.txt').textprintln content而对比java中对于文件的引用和输出的代码块:// 1. 使用File类打开一个文件;File file = new File("d:" + File.separator + "test.txt");// 2. 通过字节流或字符流的
2021-10-03 16:20:50
294
原创 1、项目的综述
1、综述这次课程我们选择的项目是分析Groovy的源码。Groovy简介Groovy是一个基于JVM的动态敏捷开发语言,能够与 Java 代码很好地结合,也能用于扩展现有代码。Groovy在设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。Groovy特点1、构造上java语言之上,并且添加了许多其它语言的诸多特征,例如动态类型转换、闭包和元编程(metaprogramming)支持。2、语法与java相似3、支持函数式编程4、可以使用模板5、可直接在JV
2021-09-27 19:59:04
84
原创 4、Groovy 模板引擎实现原理分析
Groovy 模板引擎实现原理分析在深入学习了Groovy和认真与java进行比较分析其特点后,我发现了Groovy中我一个比较感兴趣的特点是实现了模板引擎的功能,groovy的SimpleTemplateEngine实现了模板功能,这节博客就让我们在Groovy源码的基础上深入分析一个Groovy是怎么实现模板引擎的。Groovy使用模板Template template = new SimpleTemplateEngine().createTemplate( new StringR
2021-09-24 15:16:49
844
原创 3、Groovy类加载体系
2、Groovy的ClassLoader体系上一篇博客分析了下Groovy是如何在JVM上运行的,这篇博客深入根据源码分析一下Groovy的类加载器。Java的ClassLoader顾名思义,Java的ClassLoader就是类的装载器,它使JVM可以动态的载入Java类,JVM并不需要知道从什么地方(本地文件、网络等)载入Java类,这些都由ClassLoader完成。可以说,ClassLoader是Class的命名空间。同一个名字的类可以由多个ClassLoader载入,由不同ClassLoa
2021-09-20 16:41:33
601
原创 2、Groovy编译原理
Groovy编译原理Groovy是在JVM编译的上的敏捷开发语言,其代码可以和java代码进行很好的结合,也可以用于拓展其现有代码上。我们在之前java的学习中可以了解到,java源文件通过编译器编译成字节码文件(分为两部分:常量池和方法字节码)而字节码文件再通过java虚拟机JVM编译成机器语言再运行。在Groovy的代码的运行过程中,我们发现不管是写的是groovy类还是groovy脚本,它们都作为java类在JVM中运行。在这篇博客中,我们来根据Groovy源码探讨下一个Groovy类是通过怎样的编
2021-09-20 16:10:48
302
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人