自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 快速排序(单边指针法)Java代码详解

【代码】快速排序(单边指针法)Java代码详解。

2023-03-28 16:49:50 233

原创 注解和反射

使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口Reflection (反射)是Java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个类对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。

2023-03-27 23:43:23 103

原创 冒泡排序Java代码

【代码】冒泡排序Java代码。

2023-03-27 23:00:53 112

原创 堆排序Java代码详解

【代码】堆排序Java代码详解。

2023-03-27 22:57:38 276 1

原创 高德地图marker自定义图标只显示一半

解决高德地图marker自定义图标只显示一半的问题

2023-03-10 18:44:43 1366 1

原创 关于Invalid character found in the request target. 问题

关于Invalid character found in the request target. 问题

2023-03-07 15:59:31 112

原创 vue高德地图 各种配置不生效问题

vue高德地图 各种配置不生效问题

2023-03-01 14:52:54 902 1

原创 项目前端VUE环境搭建

VUE环境搭建

2023-02-03 12:49:47 102

原创 Groovy源代码分析(十三)

2021SC@SDUSCGroovy与Java的主要区别分析了这么久的Groovy,最后我们来总结一下Groovy与我之前学习的Java的主要区别。默认 imports所有这些包和类都是默认导入的,你不必使用显式import语句来使用它们:java.io.*java.lang.*java.math.BigDecimaljava.math.BigIntegerjava.net.*java.util.*groovy.lang.*groovy.util.*额外的关键字

2021-12-27 16:40:13 213

原创 Groovy源代码分析(十二)

2021SC@SDUSC运行时元编程扩展模块扩展现有类扩展模块允许我们向现有类添加新方法,包括预编译的类,如JDK中的类。 这些新方法与通过元类或使用类定义的方法不同,在全局范围内可用。 例如,我们这样写:标准扩展方法def file = new File(...)def contents = file.getText('utf-8')File类中不存在getText方法。 但是,Groovy可以使你调用它,因为它在一个特殊的类ResourceGroovyMethods中定义

2021-12-19 16:35:28 342

原创 Groovy源代码分析(十一)

2021SC@SDUSC运行时元编程(下)ExpandoMetaClassGroovy带有一个特殊的MetaClass,它就是ExpandoMetaClass。 它是特别的,它允许通过使用一个整洁的闭包语法动态添加或更改方法,构造函数,属性,甚至静态方法。每个java.lang.Class由Groovy提供,并有一个特殊的metaClass属性,它将提供对ExpandoMetaClass实例的引用。 然后,此实例可用于添加方法或更改已有现有方法的行为。默认情况下ExpandoMeta

2021-12-14 14:54:27 731

原创 Groovy源代码分析(十)

2021SC@SDUSC运行时元编程(中)GroovyInterceptablegroovy.lang.GroovyInterceptable接口是用于通知Groovy运行时的扩展GroovyObject的标记接口,所有方法都应通过Groovy运行时的方法分派器机制拦截。package groovy.lang;public interface GroovyInterceptable extends GroovyObject {}当Groovy对象实现GroovyInter..

2021-12-06 21:25:38 592

原创 Groovy源代码分析(九)

2021SC@SDUSC运行时元编程Groovy语言支持两种类型的元编程:运行时元编程和编译时元编程。 第一个允许在运行时改变类模型和程序的行为,而第二个只在编译时发生。使用运行时元编程,我们可以在运行时截取,注入,合成类和接口的方法。 为了更深入地理解Groovy MOP,我们需要了解Groovy对象和Groovy的方法处理。 在Groovy中,我们使用了三种对象:POJO,POGO和Groovy Interceptors。 Groovy允许对所有类型的对象进行元编程,但是是以不同的方式进

2021-11-29 20:11:51 502

原创 Groovy源代码分析(八)

2021SC@SDUSC

2021-11-12 15:26:13 520

原创 Groovy源代码分析(七)

2021SC@SDUSCCall Site分析Groovy 1.6引入了Call Site优化。Call Site优化实际上就是方法选择的cache。方法选择在静态语言(如Java)中,方法调用的绑定是在编译期完成的(不完全是这样,如虚函数,但总的来说,静态语言的方法调用是非常高效的)。而在动态语言(如Groovy)中,调用的方法是在运行时选择的。这也是造成动态语言比静态语言慢的重要原因之一。举个例子来说明,譬如要调用“a.call(1)”。如果是Java的话,在编译期就会选择好调用

2021-11-05 15:16:28 427

原创 Groovy源代码分析(六)

2021SC@SDUSC前面我们分析了groovy对Java最大的扩展,那就是元编程,通过对groovy元编程中几个核心类的引出和源码的分析,我们清楚的了解了groovy底层是如何实现元编程的,groovy元编程这块有非常多的用处,例如,通过元编程去动态创建方法,以及动态对方法进行拦截,方法合成等等。这次...

2021-10-23 18:14:35 697

原创 Groovy源代码分析(五)

2021SC@SDUSC接着,我们来看一下xml包,这个package包中最重要的类是:MarkupBuilder.从类名我们可以知道,这个类是用来生成标记格式类型数据,例如:XML,HTML等格式的数据。这个类的源码依赖了groovy中的元编程,我们之后会讲groovy的元编程,知道了元编程以后,你就会明白MarkupBuilder的原理。下面我们简单看一下这个类的用法,也非常的简单,代码如下:def sw = new StringWriter()def xmlBuilder = new

2021-10-20 16:00:20 365

原创 Groovy源代码分析(四)

2021SC@SDUSC前面我们分析了groovy中org包中对java做了哪些扩展和这些扩展的实现的原理,今天我们来分析一下groovy中其他地方对java做了哪些扩展下图即代码部分:之前我们分析的都是org包中的代码,今天要分析的主要代码是在groovy包下的,我们由易到难依次来分析一下这个包中的源码。这个包大家如果打开源码的话,可以看到,其中的包非常的多但大部分都是我们在写gradle或者groovy脚本时用不到的,我们最常用到的包就是:json xml lang这三个包.

2021-10-08 13:12:08 534

原创 Groovy源代码分析(三)

2021SC@SDUSC上次我们分析了groovy的几个核心扩展类,主要是几个XXXGroovyMethods,通过这几个类的扩展方法,可以让我们编写的POJO和POGO类有更多常用的方法,可以极大的提高我们的开发效率。从整体上知道groovy SDK对JDK做了哪些扩展。了解了这些扩展以后,我产生了一个疑问,这些都是GDK提供的新类,这些方法并没有加到JDK中对应的类中,我们是如何可以直接调用它扩展的那些方法的呢,例如,我们DefaultGroovyMethods类中为我们任意对象都提供了一个

2021-10-04 17:46:14 503

原创 Groovy源代码分析(二)

2021SC@SDUSC首先,我们来看一下groovy源码中有哪几个核心的包,如下图:groovy的核心代码都在groovy-3.0.9这个jar包中,这个jar包中最重要的两个包分别是:groovy和org,而groovy中重点存的就是一些groovy对json,xml等处理的类,我们之后再详细讲解这个包中的核心类,今天我们分析的是org这个包中的核心类。而我们重点要讲解org/codehaus/groovy/runtime包中的核心类,其它包中的类则是一些辅助类,这个包中有如下几个类.

2021-09-24 15:31:37 817

原创 Groovy源代码分析(一)

Groovy 是 用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。(注意:不是指

2021-09-20 18:18:32 908 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除