一篇吃透 Java 泛型:语法与底层原理
泛型一、泛型的概念二、泛型的语法1. 泛型类 / 接口2. 泛型方法三、泛型类的使用四、泛型如何编译的(面试常考)1. 擦除机制五、泛型的上界一、泛型的概念泛型就是参数化类型把数据类型当作参数传递把类型当作参数传进去用什么类型就指定什么类型代码更通用、更安全泛型 万能盒子你买一个盒子不规定它装什么。用的时候再说装苹果、装书、装玩具。泛型就是先不写死类型用的时候再指定二、泛型的语法1. 泛型类 / 接口class泛型类名称类型形参列表{// 这里可以使用类型参数}classClassNameT1,T2,...,Tn{} T 就是泛型参数表示任意类型T 可以是任意字母E、K、V、T 都可以2. 泛型方法publicTT方法名(Tt){returnt;}三、泛型类的使用示例// 泛型类T 代表传入的类型classBoxT{privateTdata;publicvoidset(Tdata){this.datadata;}publicTget(){returndata;}}使用publicclassTest{publicstaticvoidmain(String[]args){// 存字符串BoxStringbox1newBox();box1.set(Hello);Stringsbox1.get();// 存数字BoxIntegerbox2newBox();box2.set(100);intibox2.get();}}注意不能new泛型类型的数组比如说T[]tsnewT[5];泛型只能接受类所有的基本数据类型必须使用包装类四、泛型如何编译的(面试常考)1. 擦除机制通过命令javap -c 查看Box.class 字节码文件所有的T都是Object在编译的过程当中将所有的T替换为Object这种机制我们称为擦除机制Java的泛型机制是在编译级别实现的。编译器生成的字节码在运行期间并不包含泛型的类型信息也就是说编译完成后生成 .class 文件时会把 全部删掉总结一下当你使用泛型时编辑器做了三件事编译期间类型检查比如你写了ArrayList String 编译器就只允许你 add String放错类型直接报错编译后擦除泛型 String 直接删掉变回原始类型Object自动帮你强转取数据时编译器偷偷帮你加 (String)五、泛型的上界在定义泛型类时有时需要对传入的类型变量做一定的约束可以通过类型边界来约束,限制传入的类型只能是某个类或它的子类语法class泛型类名称类型形参列表extends继承类/* 这里可以使用类型参数 */{// 这里可以使用类型参数}示例publicstaticvoidshow(BoxEextendsNumberbox){}上界 Number能传Integer、Double、Short……都是 Number 的子类不能传String、Student……不是子类复杂示例publicclassMyArrayEextendsComparableE{...}E必须是实现了Comparable接口的

相关新闻

2026年GEO优化服务商哪家好?权威排名TOP5,亚森SEO稳居榜首!

2026年GEO优化服务商哪家好?权威排名TOP5,亚森SEO稳居榜首!

2026年GEO优化服务商哪家好?权威排名TOP5,亚森SEO稳居榜首!当下AI生成式搜索全面普及,GEO(生成式引擎优化)早已取代传统SEO,成为企业抢占AI流量、提升品牌曝光、撬动精准转化的核心刚需。2026年…

2026/5/17 7:24:42 阅读更多 →
Timestamp.cc和Timestamp.h文件分析

Timestamp.cc和Timestamp.h文件分析

一、头文件(Timestamp.h)完整注释语法解析 // 1. 预处理指令:防止头文件被重复包含(现代编译器支持,替代传统#ifndef/#define/#endif) // 语法:#pragma是编译器特定预处理指令,on…

2026/5/17 10:22:15 阅读更多 →
2026广州GEO优化公司排名TOP5|本地实力派盘点,亚森SEO稳居榜首!

2026广州GEO优化公司排名TOP5|本地实力派盘点,亚森SEO稳居榜首!

2026广州GEO优化公司排名TOP5|本地实力派盘点,亚森SEO稳居榜首!步入2026年,AI生成式搜索全面占领流量入口,GEO(生成式引擎优化)早已成为广州本地企业、珠三角商家抢占本地流量、撬动精准转化的核…

2026/5/17 10:22:13 阅读更多 →

最新新闻

原来长春市场竟有产品稳定的专业宝马原厂升级产品?

原来长春市场竟有产品稳定的专业宝马原厂升级产品?

行业痛点分析在长春宝马原厂升级领域,存在诸多核心技术挑战。许多车主面临不知道哪里改装专业的问题,数据表明,约 60%的车主担心被宰,害怕遇到技术不专业的改装店。同时,近 50%的车主担忧师傅拆装有瑕疵,还…

2026/7/3 9:14:36 阅读更多 →
Windows触控板革命:如何通过三指拖拽实现macOS级效率体验

Windows触控板革命:如何通过三指拖拽实现macOS级效率体验

Windows触控板革命:如何通过三指拖拽实现macOS级效率体验 【免费下载链接】ThreeFingersDragOnWindows Enables macOS-style three-finger dragging functionality on Windows Precision touchpads. 项目地址: https://gitcode.com/gh_mirrors/th/ThreeFingersDra…

2026/7/3 9:12:36 阅读更多 →
惠普OMEN游戏本终极性能解锁指南:OmenSuperHub完全控制你的笔记本

惠普OMEN游戏本终极性能解锁指南:OmenSuperHub完全控制你的笔记本

惠普OMEN游戏本终极性能解锁指南:OmenSuperHub完全控制你的笔记本 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub …

2026/7/3 9:08:35 阅读更多 →
2026年最值得关注的AI编程工具盘点

2026年最值得关注的AI编程工具盘点

2026年最值得关注的AI编程工具盘点这两年 AI 编程工具井喷式发展,从 GitHub Copilot 到 Cursor,再到各种大厂入局,开发者的选择越来越多。我从去年开始陆续深度使用了十几款工具,这里分享一下真实体验,帮大家避坑。为什…

2026/7/3 9:06:34 阅读更多 →
Obsidian接入国产大模型:Node.js+Git+沙箱的可审计工作流

Obsidian接入国产大模型:Node.js+Git+沙箱的可审计工作流

1. 这不是“又一个Obsidian插件教程”,而是知识工作流的底层重构 Obsidian里装个Claude Code,再连上国产大模型——听起来像极了朋友圈里刷屏的“效率神器”截图。但如果你真这么干了,大概率会在三分钟内卡在Node.js版本报错上,五…

2026/7/3 9:04:34 阅读更多 →
Hyperautomation实战:AI如何驱动产线自决策与自愈

Hyperautomation实战:AI如何驱动产线自决策与自愈

1. 项目概述:当自动化不再只是“点一下”,而是整条产线自己思考、决策、修复我第一次在客户现场看到Hyperautomation落地效果,是在一家做工业软件的公司。他们原来的CI/CD流水线已经用了五年——Jenkins跑构建、Selenium跑UI回归、SonarQube扫…

2026/7/3 9:04:34 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻