- 博客(2467)
- 资源 (3)
- 收藏
- 关注
原创 Caché File
Caché File第一章 查询目录和驱动器☆☆☆☆☆第二章 使用文件和目录属性和属性☆☆☆☆☆第三章 处理文件和目录名☆☆☆☆☆第四章 使用目录☆☆☆☆☆第五章 使用文件☆☆☆☆☆第六章 使用%File对象☆☆☆☆☆第七章 将文件内容复制到另外文件☆☆☆☆☆ 预告下一期系列将用一个月的时间连载,《Caché 关键字大全》,敬请期待。交流群QQ群号:410039091笔者QQ:454115408公众号:技术理科直男intersys版主:姚鑫...
2021-07-20 07:22:32
1982
1
原创 Caché XML
Caché XML第一章 InterSystems XML工具简介☆☆☆☆第二章 从对象写入XML输出☆☆☆☆☆第三章 指定输出的字符集☆☆☆☆☆第四章 添加命名空间声明☆☆☆☆☆第五章 生成XML元素☆☆☆☆☆第六章 控制名称空间的使用☆☆☆☆☆第七章 控制命名空间分配的外观☆☆☆☆☆第八章 Other Options of the Writer☆☆☆☆☆第九章 将XML导入到对象中☆☆☆☆☆第十章 XML元素和属性☆☆☆☆☆第十一章 重新定义读取器处理相关对象的方式☆☆☆☆☆第.
2021-07-11 09:57:29
1527
原创 Caché 网络实用工具
Caché 网络实用工具第一章 发送HTTP请求☆☆☆☆☆第二章 设置和获取HTTP标头☆☆☆☆☆第三章 发送HTTP请求☆☆☆☆☆第四章 收发电子邮件☆第五章 向邮件添加附件☆第六章 从POP3服务器提取电子邮件☆第七章 从POP3服务器提取电子邮件☆第八章 处理收到的电子邮件☆第九章 创建、编写和阅读MIME邮件☆第十章 使用FTP☆☆☆☆☆第十一章 发送和接收IBM WebSphere MQ消息☆第十二章 IBM WebSphere MQ检索邮件☆第十三章 使用SSH☆第.
2021-06-07 08:18:02
1323
原创 Caché Global
Caché Global第一章 简介global☆☆☆☆☆第二章 全局变量结构(一)☆☆☆☆☆第二章 全局变量结构(二)☆☆☆☆☆第三章 使用多维存储(全局变量)(一)☆☆☆☆☆第三章 使用多维存储(全局变量)(二)☆☆☆☆☆第三章 使用多维存储(全局变量)(三)☆☆☆☆☆第三章 使用多维存储(全局变量)(四)☆☆☆☆☆第四章 多维存储的SQL和对象使用(一)☆☆☆☆☆第四章 多维存储的SQL和对象使用(二)☆☆☆☆☆第五章 管理全局变量(一)☆☆☆☆☆第五章 管理全局变量(二)☆☆.
2021-05-15 08:14:35
2033
原创 Caché SQL 高性能优化
Caché SQL 高性能优化第一章 SQL性能优化简介第二章 定义和构建索引(一)第二章 定义和构建索引(二)第二章 定义和构建索引(三)第二章 定义和构建索引(四)第二章 定义和构建索引(五)第三章 优化表(一)第三章 优化表(二)第四章 缓存查询(一)第四章 缓存查询(二)第五章 优化查询性能(一)第五章 优化查询性能(二)第五章 优化查询性能(三)第五章 优化查询性能(四)第六章 SQL性能分析工具包第七章 解释SQL查询计划第八章 解释SQL查询计划(一)第八.
2021-05-02 08:34:40
1455
原创 Caché SQL 必知必会
Caché SQL 必知必会第一章 SQL简介☆☆☆☆☆第二章 SQL基础☆☆☆☆☆第三章 SQL语言元素(一)☆☆☆☆☆第三章 SQL语言元素(二)☆☆☆☆☆第四章 SQL标识符☆☆☆☆☆第五章 SQL定义表(一)☆☆☆☆☆第五章 SQL定义表(二)☆☆☆☆☆第五章 SQL定义表(三)☆☆☆☆☆第六章 SQL定义和使用视图☆☆☆☆☆第七章 SQL表之间的关系☆☆☆☆☆第八章 SQL修改数据库☆☆☆☆☆第九章 SQL查询数据库(一)☆☆☆☆☆第九章 SQL查询数据库(二)☆☆☆☆.
2021-04-11 11:48:58
4545
原创 Caché 变量大全
Caché 变量大全系统变量第一章 Caché 变量大全 $DEVICE 变量第二章 Caché 变量大全 $ECODE 变量第三章 Caché 变量大全 $ESTACK 变量第四章 Caché 变量大全 $ETRAP 变量第五章 Caché 变量大全 $HALT 变量第六章 Caché 变量大全 $HOROLOG 变量第七章 Caché 变量大全 $IO 变量第八章 Caché 变量大全 $JOB 变量第九章 Caché 变量大全 $KEY 变量第十章 Caché 变量大全 $NA.
2021-02-27 07:52:32
1928
原创 Caché 函数大全
Caché 函数大全Caché ObjectScript函数第一章 Caché 函数大全 $ASCII 函数☆☆☆☆☆第二章 Caché 函数大全 $BIT 函数☆☆☆第三章 Caché 函数大全 $BITCOUNT 函数☆☆☆第四章 Caché 函数大全 $BITFIND 函数☆☆☆第五章 Caché 函数大全 $BITLOGIC 函数☆☆☆第六章 Caché 函数大全 $CASE 函数☆☆☆☆☆第七章 Caché 函数大全 $CHAR 函数☆☆☆☆☆第八章 Caché 函数大全 $C.
2020-12-25 07:06:00
8974
1
原创 Caché 命令大全
Caché ObjectScript 命令第一章 Caché 命令大全 BREAK 命令第二章 Caché 命令大全 CATCH 命令第三章 Caché 命令大全 CLOSE 命令第四章 Caché 命令大全 CONTINUE 命令第五章 Caché 命令大全 DO 命令第六章 Caché 命令大全 DO WHILE 命令第七章 Caché 命令大全 ELSE 命令第八章 Caché 命令大全 ELSEIF 命令第九章 Caché 命令大全 FOR 命令第十章 Caché 命令大全 GO
2020-08-21 22:48:44
5118
原创 Caché 算法与数据结构
Caché 算法与数据结构第一章 Caché 算法与数据结构 基础和概念第二章 Caché 算法与数据结构 数组原理第三章 Caché 算法与数据结构 链表原理第四章 Caché 算法与数据结构 栈原理第五章 Caché 算法与数据结构 队列原理第六章 Caché 算法与数据结构 循环队列第七章 Caché 算法与数据结构 双端队列第八章 Caché 算法与数据结构 散列表第九章 Caché 算法与数据结构 二叉树第十章 Caché 算法与数据结构 二叉堆第十一章 Caché 算法与.
2020-07-01 11:43:50
2487
原创 疯狂 Caché
疯狂 Caché第一章 疯狂Caché 介绍CachéObjectScript第二章 疯狂Caché 语法规则第三章 疯狂Caché 数据类型和值第四章 疯狂Caché 变量第五章 疯狂Caché 运算符和表达式(一)第五章 疯狂Caché 运算符和表达式(二)第五章 疯狂Caché 运算符和表达式(三)第五章 疯狂Caché 运算符和表达式(四)第五章 疯狂Caché 运算符和表达式(五)第六章 疯狂Caché 正则表达式(一)第六章 疯狂Caché 正则表达式(二)第七章 疯狂C
2020-06-05 08:48:45
4033
原创 Caché 23种设计模式
Caché 23种设计模式前章 Caché 程序员必须知道的七大原则第一章 Caché 设计模式 简单工厂模式第二章 Caché 设计模式 策略模式第三章 Caché 设计模式 装饰者模式第四章 Caché 设计模式 代理模式第五章 Caché 设计模式 工厂方法第六章 Caché 设计模式 原型模式第七章 Caché 设计模式 模版方法模式第八章 Caché 设计模式 外观模式...
2020-05-04 09:59:17
4395
原创 Caché 从入门到精通
Caché从入门到精通第一章 Caché 对象介绍第二章 Caché 定义和编译类第三章 Caché 包选项第四章 Caché 类参数介绍第五章 Caché 定义和调用方法第六章 Caché 使用注册对象第七章 Caché 持久性对象介绍第八章 Caché 使用持久对象第九章 Caché 定义持久类第十章 Caché 定义和使用属性第十一章 Caché 使用集合第十二章 C...
2020-04-09 09:01:21
9091
原创 517. Java 方法句柄 - 方法句柄 vs 反射 API
<think>我们根据用户指令,需要从给定内容生成≤150字的文章摘要。内容是关于Java方法句柄与反射API的对比。摘要应简洁概括核心要点。注意字数限制。我们可以从背景、差异、互操作、总结中提炼。确保中文,150字以内。</think>Java方法句柄(Method Handles)与反射API定位不同:反射擅长运行时枚举类结构,适合框架扫描;方法句柄提供高性能调用,支持函数式变换,但无法枚举成员。反射每次调用有安全检查,方法句柄仅创建时检查,性能更优。二者可互转,但变换后的句柄无法还原为反射。最佳实践:
2026-09-08 10:31:35
293
原创 516. Java 方法句柄 - 转换(进阶篇·下)
<think>我们根据内容生成一个不超过150字的摘要。要求概括核心:foldArguments和filterReturnValue的作用、例子、总结。注意摘要要简洁。</think>摘要:本文介绍Java方法句柄的高级组合:参数折叠(foldArguments)在调用目标前预处理参数并插入结果;返回值过滤(filterReturnValue)对目标返回值进行后加工。通过示例展示语法和效果,适用于计算默认值、日志、结果格式化等场景。
2026-09-07 06:46:18
190
原创 515. Java 方法句柄 - 转换 (进阶篇)
<think>我们根据内容生成摘要,≤150字。内容讲insertArguments和filterArguments。摘要需概括核心功能与示例。用简洁中文。</think>本文介绍Java方法句柄的高级转换:insertArguments可预绑定固定参数,减少调用时传参;filterArguments可在调用前对指定参数进行预处理,支持部分参数过滤。两者均返回新句柄,适合参数固定或数据转换场景,类比积木拼接、外卖固定选项与流水线预处理。
2026-09-06 06:56:45
180
原创 514. Java 方法句柄 - 转换
<think>我们根据内容生成摘要,不超过150字。内容主要讲Java方法句柄的转换,包括asType和permuteArguments。摘要需简洁概括。</think>Java方法句柄可通过转换灵活适配:asType调整参数/返回值类型,不兼容时报WrongMethodTypeException;permuteArguments重排参数顺序,通过索引映射新顺序到原顺序。两者均包装原句柄,在调用前后做适配,分别类比接口转换器与重新插拔电线。
2026-09-05 05:09:10
208
原创 513. Java 方法句柄 - 异常处理
<think>我们根据用户要求,基于提供的文本生成不超过150字的摘要。需要注意:摘要需概括核心内容,原创简洁,不包含无关信息。原文主要介绍Java方法句柄的异常处理,包括invoke/invokeExact抛出Throwable,以及catchException和tryFinally两个工具方法的功能和示例。摘要应涵盖这些要点。字数控制在150字以内。</think>Java方法句柄调用时,invokeExact和invoke都声明抛出Throwable,需显式处理。MethodHandles提供catc
2026-09-04 09:13:16
179
原创 512. Java 方法句柄 - 操作数组
<think>我们根据要求生成一篇总结性文章摘要,字数不超过150字。内容围绕Java方法句柄操作数组的几种预设方法句柄:arrayConstructor, arrayElementSetter, arrayElementGetter, arrayLength,无需Lookup和访问检查,用于动态数组操作。摘要应简洁概括。</think>Java方法句柄可动态操作数组,无需访问检查或Lookup对象。通过arrayConstructor创建指定长度数组,arrayElementSetter/Getter读写
2026-09-03 09:01:50
203
原创 511. Java 方法句柄 - 访问字段
<think>我们根据要求生成摘要,不超过150字。需要概括主要内容:方法句柄访问字段,包括静态和实例字段的getter/setter,以及推荐使用VarHandle。用中文。</think>本文介绍了Java方法句柄访问字段:通过findGetter/findSetter操作实例字段,findStaticGetter/findStaticSetter操作静态字段,调用时需传入实例(静态则不用)。同时指出更推荐使用VarHandle,其API简洁、支持原子操作且性能更高。
2026-09-02 09:16:09
197
原创 510. Java 方法句柄 - 调用方式
<think>我们根据要求生成摘要,不超过150字。内容要点:三种调用方式:invokeExact、invoke、invokeWithArguments,各自特点/性能/适用场景,最终底层都走invokeExact。用简洁语言概括。</think>Java方法句柄有三种调用方式:invokeExact()严格匹配类型,性能最高;invoke()自动适配类型,灵活性次之;invokeWithArguments()支持动态参数列表,最宽松但性能最低。三者底层最终都通过invokeExact()执行,可根据参数确
2026-09-01 09:13:03
340
原创 509. Java 方法句柄 - Lookup 与 MethodType
Lookup 决定访问范围:安全边界要牢记。MethodType 是“方法签名描述符”:必须精确匹配返回值和参数类型。三类查找方法—— 实例方法findStatic—— 静态方法—— 构造函数调用方式统一methodHandle.invoke(对象, 参数...)💡 建议在培训时加一个对照表查找方式示例说明调用实例方法findStatic调用静态方法调用构造方法。
2026-08-31 08:52:01
205
原创 509. Java 方法句柄 - Lookup 与 MethodType
Lookup 决定访问范围:安全边界要牢记。MethodType 是“方法签名描述符”:必须精确匹配返回值和参数类型。三类查找方法—— 实例方法findStatic—— 静态方法—— 构造函数调用方式统一methodHandle.invoke(对象, 参数...)💡 建议在培训时加一个对照表查找方式示例说明调用实例方法findStatic调用静态方法调用构造方法。
2026-08-29 08:57:27
216
原创 508. Java 方法句柄 - 简介
在 Java 中,是一种底层机制,用于方法的查找和调用。它和反射 (Reflection API)两者都能动态调用方法、构造函数,甚至访问字段。不同的是,Method Handle 更加轻量和高效,因为它直接引用了目标方法,而不是每次都做完整的反射调用。一个可直接调用的函数指针 (function pointer),指向某个方法、构造函数或字段,并且可以组合、转换、适配。
2026-08-28 09:22:12
238
原创 507. Java 反射 - 在 BeanFactory 中实现依赖注入
在企业应用中,类往往不是孤立的,它们依赖于其他服务。依赖于DBService。一个业务逻辑类可能依赖多个工具类(如日志、消息队列、配置服务)。👉 如果由开发者手动new出这些依赖对象,代码会非常耦合,难以维护和测试。👉依赖注入 (DI)的思想就是:对象不自己创建依赖,而是由容器/工厂负责初始化并注入。这就是Spring 框架的核心思想之一,我们这里通过实现一个简化版。这样工厂在扫描类时,就知道该字段需要自动赋值。
2026-08-27 09:24:18
182
原创 505. Java 反射 - BeanFactory 讲解
在企业级开发中,我们经常需要创建并管理对象(Bean)。而不是到处写new,我们可以通过一个Bean 工厂来统一负责对象的创建。你告诉工厂:“我要一个Message对象,并且构造参数是"Hello"工厂帮你找到合适的构造方法,创建并返回这个对象。这和我们前面讲到的依赖注入 (DI)有点类似,不过这里更偏向于一个通用的对象工厂。枚举单例模式:相比懒汉式/饿汉式,枚举单例更简洁、安全。参数类型匹配问题:如果构造器参数是int,但你传的是Integer,可能找不到。可以用+类型兼容检查来增强。
2026-08-25 09:53:38
246
原创 504. Java 反射 - 创建一个简单的依赖注入框架
依赖注入(Dependency Injection,简称DI)是一种设计模式,它的核心思想是:👉不要自己手动创建对象,而是让“工厂/框架”来为你准备好依赖对象并注入到业务类中。解耦:业务类不再依赖具体实现,只依赖抽象。易于测试:可以轻松替换依赖(比如替换成 Mock 实现)。生命周期管理:框架可以统一管理对象的创建、销毁、单例复用等。很多企业级框架(如)都是基于这种机制构建的。@Singleton:表示该类只能有一个实例。@Inject:表示该字段需要由框架来注入依赖。对比现实框架。
2026-08-24 08:54:47
232
原创 503. Java 反射 - 编写 ServiceFactory 类
统一入口:不管有没有拦截器,都能完成方法调用。灵活扩展:不同方法可以使用不同的拦截器(比如日志拦截器、权限拦截器、缓存拦截器)。类型不安全:由于反射和强制类型转换,编译期无法保证安全性 → 运行时可能抛出异常。对比实际框架:Spring AOP、Jakarta EE Interceptor 都是基于类似的理念,只不过使用了更底层的代理机制和字节码增强。
2026-08-23 08:24:31
46
原创 502. Java 反射 - 编写 MessageInterceptor 类
参数校验:如果传入null或空字符串,会抛出异常,阻止目标方法的执行。拦截逻辑:我们在调用message()前后加入了额外逻辑(参数校验 + 结果追加说明)。反射调用:通过来执行实际的业务方法。增强返回值:返回值被拦截器修改,增加了。
2026-08-22 08:48:17
263
原创 501. Java 反射 - 使用注解与接口设计拦截器
本文介绍了利用Java反射与注解实现方法拦截器的设计模式。通过定义通用拦截器接口Interceptor<T, R>,实现方法调用的前后拦截;使用@Intercept注解标记需要拦截的方法并指定拦截器类;通过ServiceFactory统一处理反射调用,自动执行拦截逻辑。该设计实现了业务逻辑与拦截器的解耦,拦截器可灵活实现日志记录、安全校验等功能。测试案例展示了拦截器在方法调用前后打印日志的实际效果,验证了该模式的可行性。
2026-08-21 09:31:29
186
原创 500. Java 反射 - 使用注解创建拦截器
本文介绍了如何使用Java反射和注解实现方法拦截器(Interceptor)。首先解释了拦截器作为横切关注点处理机制的核心思想,即在不修改业务逻辑代码的情况下,在方法执行前后加入额外功能。然后详细演示了实现过程:1)定义@Intercept注解;2)创建MethodInterceptor接口;3)实现日志拦截器;4)在业务方法上应用注解;5)通过反射检查注解并执行拦截逻辑。这种基于注解和反射的轻量级AOP实现方式,可用于日志、校验、安全等常见横切关注点处理,具有代码简洁、解耦的优点。
2026-08-20 10:04:37
176
原创 499. Java 反射 - 获取类型上的注解
本文介绍了Java 8引入的TYPE_USE注解特性及其反射API应用。主要内容包括: 定义@NonNull等类型注解,可标记在继承、接口实现等类型使用位置 通过AnnotatedType接口及相关反射方法获取这些注解: getAnnotatedSuperclass()获取父类注解 getAnnotatedInterfaces()获取接口注解 演示了在异常声明中使用类型注解(如@ReThrowAsRuntimeException)实现异常转换 该特性适用于代码质量检查、契约验证和异常处理策略等场景 (98字
2026-08-18 10:36:56
193
原创 498. Java 反射 - 获取继承的注解
本文介绍了Java反射中获取继承注解的方法。关键点包括:1)只有使用@Inherited标记的注解才能被继承,枚举和记录类不支持;2)getDeclaredAnnotations()仅获取当前类的注解,而getAnnotations()会包含继承的注解;3)通过代码示例验证了继承效果,如Spring的@Component注解就是典型应用。理解这些差异对框架开发很重要。
2026-08-17 08:59:20
229
原创 497. Java 反射 - 使用反射读取注解
本文介绍了Java反射机制如何读取注解。现代Java框架(如Hibernate、Spring)广泛使用注解作为配置方式,其核心是通过反射API在运行时解析注解信息。文章详细讲解了AnnotatedElement接口提供的注解操作方法,包括检查注解存在性、获取单个或多个注解等,并通过类级别注解和重复注解的具体代码示例,演示了如何利用反射获取注解信息。最后强调注解作为框架"说明书"的重要性,以及反射在读取注解过程中的关键作用。
2026-08-16 08:16:41
232
原创 496. Java 反射 - 使用反射访问 Record 字段
本文介绍了Java反射机制访问Record字段的特性。Record字段被编译器自动标记为private final,保证了其不可变性。通过反射可以获取字段信息(Class.getDeclaredFields())和读取字段值(Field.get()),但尝试修改final字段会抛出IllegalAccessException。这种设计确保了Record对象创建后的状态不可变,在多线程等场景下更安全可靠。文章通过Point record示例演示了相关操作和限制。
2026-08-15 08:47:11
244
原创 495. Java 反射 - 获取 Record 组件信息
本文介绍了Java反射API中用于获取Record类组件信息的RecordComponent类。Record类通过声明组件自动生成构造器和访问器,RecordComponent提供了获取组件名称、类型、泛型信息和访问器方法等功能。文章通过Point和泛型Box两个示例,演示了如何通过反射获取组件信息,并比较了getType()和getGenericType()的区别。关键点包括:使用getRecordComponents()获取所有组件,注意泛型类型与运行时类型的差异,以及组件访问器方法的命名规则。这些知识
2026-08-14 10:24:18
348
原创 494. Java 反射 - 使用 Record 的反射操作
本文介绍了Java 16引入的Record类型及其反射操作特性。主要内容包括:1) Record是表示不可变数据的特殊类,自动生成构造器等方法;2) 通过Class.isRecord()方法判断类是否为Record类型;3) 提供了Point和Person等Record类的判断示例;4) 强调普通类、匿名类不会被识别为Record。文章还预告后续将学习通过反射获取record components等更深入的内容。
2026-08-13 08:55:37
196
原创 493. Java 反射 - 发现编译器生成的方法
本文通过反射机制揭示了Java编译器为枚举类自动生成的方法。示例代码使用getDeclaredMethods()获取枚举类Days的所有方法,输出结果显示除自定义方法外,编译器还生成了values()、valueOf(String)等标准方法。特别说明了$values()内部数组方法与values()拷贝方法的区别,以及Lambda表达式会被编译为lambda$方法名$编号格式的私有合成方法。这些发现展示了Java语法糖背后的实现机制,帮助开发者更深入理解枚举类的工作原理。需要注意的是,自动生成的方法名可能
2026-08-12 09:14:09
258
Design.xml
2020-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅