- 博客(55)
- 资源 (1)
- 收藏
- 关注
原创 Java: 反射机制的 ParameterizedType(参数化类型)
Java反射中的ParameterizedType接口用于处理泛型参数化类型,在类型擦除后仍能获取泛型信息。它通过getActualTypeArguments()获取类型参数,getRawType()获取原始类型,getOwnerType()获取所有者类型(内部类场景)。典型应用包括JSON反序列化、依赖注入等框架开发,通过子类继承泛型父类的方式规避类型擦除限制。该接口与GenericArrayType、TypeVariable等共同构成Java反射的类型体系,是运行时处理泛型的重要工具。
2025-07-18 14:28:39
684
原创 英语:词根 Meta
文章摘要:"Meta"源自希腊语,意为"超越"或"自我参照",表示对事物本身的反思或更高层次的抽象。在计算机领域常见于metadata(描述数据的数据)、metalanguage(描述语言的语言)和HTML的<meta>标签(描述网页元信息)。
2025-07-16 15:16:41
670
原创 Java :通配符捕获(Wildcard Capture)
什么是通配符捕获?本文解释了Java泛型中的通配符捕获机制。通过分析《Java核心卷1》中的代码示例,说明了为何不能直接在swap(Pair<?> p)方法中实现交换逻辑:因为通配符?表示未知类型,编译器无法确定具体类型参数。文章详细阐述了swapHelper泛型方法的作用,它通过类型参数<T>捕获具体类型,从而安全地操作泛型对象。还解释了通配符捕获的概念,即编译器将通配符?隐式转换为具体类型参数的过程。最后指出这种设计允许客户端代码灵活处理不确定类型的泛型对象,同时保持类型安全。
2025-07-15 10:32:36
437
原创 Java :编译器的占位符 T#1
Java泛型中的T#1是编译器为通配符?创建的临时类型变量,用于表示某个确定的具体类型。它存在于编译阶段,用于类型检查和推导,确保泛型操作的类型安全。T#1不是可见的具体类型,而是一个内部占位符,在运行时会被擦除。当操作Pair<?>时,编译器会捕获?为T#1,并根据实际对象类型(如String)推断其具体值。这种机制允许在保持类型安全的情况下操作未知类型的泛型实例。不同编译器可能使用不同表示(如CAP#1),但原理相同。
2025-07-14 17:31:29
262
原创 Java :T extends Comparable<? super T> 和 T extends Comparable<T>的区别
《Java泛型函数比较:T extends Comparable<T> vs T extends Comparable<? super T>》 摘要:本文对比了两个Java泛型函数的区别,主要在于类型参数的不同约束。T extends Comparable<T>要求类型T必须直接实现与自身比较,而T extends Comparable<? super T>允许T与自身或其父类比较,兼容继承场景。后者适用范围更广,能处理子类复用父类比较逻辑的情况,如Dog继承
2025-07-11 16:41:47
415
原创 Java :Optional容器类
Java 8引入的Optional类为处理可能为null的值提供了更安全的方式,有效减少NullPointerException。摘要介绍了创建Optional的三种方法(of/ofNullable/empty),判断值存在的isPresent/isEmpty/ifPresent方法,获取值的get/orElse/orElseGet/orElseThrow方法,以及转换值的map/flatMap和过滤值的filter操作。通过示例展示了Optional的典型用法,并提示注意事项:避免滥用、慎用get()、不
2025-07-10 15:54:31
826
原创 Java:函数式接口 Supplier<T>
Java中Supplier<T>接口是一个无参数但返回指定类型值的函数式接口,核心用途包括延迟计算、解耦生产逻辑和函数式编程。典型应用场景有:1) 结合Optional实现默认值懒加载;2) 作为工厂方法封装对象创建;3) 缓存数据加载等。示例展示了生成随机数、延迟创建默认值以及作为方法参数传递生成逻辑等用法,有效避免不必要的资源消耗,提高代码灵活性。Supplier通过get()方法实现"需要时才计算"的特性,在资源敏感场景中尤为实用。
2025-07-10 15:51:40
230
原创 js 深入理解函数(二):扩展操作符、函数的内部对象、属性和方法
深入理解函数的内部对象this、arguments,函数属性和方法以及扩展操作符的使用
2024-10-09 08:37:12
1306
原创 js 深入理解代理和反射
代理和反射提供了拦截并向基本操作嵌入额外行为的能力。具体地说,可以给目标对象定义一个关联的代理对象,而这个代理对象可以作为抽象的目标对象来使用。在对目标对象的各种操作影响目标对象之前,可以在代理对象中对这些操作加以控制对刚刚接触这个主题的开发者而言,代理是一个比较模糊的概念,而且还夹杂着很多新术语。其实只要看几个例子,就很容易理解了。使用代理的主要目的是可以定义捕获器(trap)。捕获器就是在处理程序对象中定义的“基本操作的拦截器”。
2024-09-29 09:50:06
923
原创 js 深入理解类-class
ES 6 终于有了class 关键字了,继承可以节省了很多冗长的代码。那么有了类 这个语法糖,以前学习的原型、对象、构造函数的知识是不是都没用了。恰恰相反,ES 6的类 其实都是在使用 原型、构造函数的概念。所以学习本章的内容最好学习前面几章的知识。
2024-09-20 10:49:34
4253
原创 js 深入理解生成器
生成器是一种可以用来控制迭代器(iterator)的函数,它可以随时暂停,并可以在任意时候恢复。这种新能力具有深远的影响,比如,使用生成器可以自定义迭代器和实现协程。迭代是一种所有编程语言中都可以看到的模式。ECMAScript 6 正式支持迭代模式并引入了两个新的语言特性:迭代器和生成器。
2024-09-13 14:11:42
1350
原创 js 七种数据类型之 Symbol
ECMAScript 有 6 种简单数据类型(也称为原始类型): Undefined 、 Null 、 Boolean 、 Number 、String 和 Symbol。还有一种 1 种复杂数据类型叫 Object (对象)。因为String和Symbol的内容都偏多,所以都是单开一篇。本章学习Symbol类型。Symbol (符号)是 ECMAScript 6 新增的数据类型。符号是原始值,且符号实例是唯一、不可变的。符号的用途是确保对象属性使用唯一标识符,不会发生属性冲突的危险。
2024-08-26 13:15:46
2642
原创 js 七种数据类型之 String
ECMAScript 有 6 种简单数据类型(也称为原始类型): Undefined 、 Null 、 Boolean 、 Number 、String 和 Symbol。还有一种 1 种复杂数据类型叫 Object (对象)。因为String和Symbol的内容都偏多,所以都是单开一篇。本章学习String类型。String (字符串)数据类型表示零或多个 16 位 Unicode 字符序列。字符串可以使用双引号(")、单引号(')或反引号(`)
2024-08-16 16:00:54
1331
原创 js 七种数据类型之Undefined、Null 、Boolean、Number
ECMAScript 有 6 种简单数据类型(也称为原始类型): Undefined 、 Null 、 Boolean 、 Number 、String 和 Symbol。Symbol (符号)是 ECMAScript 6 新增的。还有一种复杂数据类型叫 Object (对象)。Object 是一种无序名值对的集合。因为在 ECMAScript 中不能定义自己的数据类型,所有值都可以用上述 7 种数据类型之一来表示。只有 7 种数据类型似乎不足以表示全部数据。
2024-08-16 09:39:12
1440
原创 【数据结构与算法(C语言)】离散事件模拟- 单链表和队列的混合实际应用
事件驱动模拟,银行业务窗口排队模拟程序。合理利用 单链表和队列数据结构,C语言代码实现
2024-06-17 10:40:29
1100
原创 【C语言】指向指针的指针使用场景
C 语言中,比较难理解的就是指针,完全搞懂了指针,那么C语言算是入了门。指针中比较难理解的概念:。指针的指针,刚开始看到这个概念,感觉头疼。但是我们在程序里面应用一次就能搞懂。本文通过使用,来理解指针的指针。
2024-06-13 12:25:36
543
原创 【数据结构与算法(C 语言)】队列 --链队列
队列:一种先进先出(first in first out,缩写 FIFO)的线性表。队尾:允许插入的一端(rear)队头:允许删除的一端 (front)用链表标识的队列简称。
2024-06-03 09:06:18
415
原创 【C#】多线程中,跨线程实现对UI控件更新
Cross-thread operation not valid :Control ‘listBox1’ accessed from a thread other than the thread it was created on” ,即“线程间操作无效,从不是创建控件“listbox1”的线程访问它。
2024-06-03 09:02:36
1001
原创 【数据结构与算法(c语言)】线性表--循环链表 一张图搞懂 约瑟夫问题
据说著名犹太历史学家Josephus(弗拉维奥·约瑟夫斯)有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。接着,再越过k-1个人,并杀掉第k个人。说明 :判断 约瑟夫环是否还剩m-1个结点(如果还剩m-1个,代表约瑟夫问题循环结束),如果是返回true,否则返回false。
2024-05-07 11:06:58
1084
Newtonsoft.Json .net framework 3.5 和.net framework 4.0两个版本
2024-05-07
c语言实现单链表 (数据结构与算法 严蔚敏版 作业)完整源码
2024-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人