编译器

首页 标签 编译器
# 编译器 #
关注
30459内容
Java泛型类型擦除以及类型擦除带来的问题
Java泛型在编译时会进行类型擦除,所有泛型信息被移除,替换为原始类型(如Object或限定类型)。例如,List<String>和List<Integer>在运行时均为List,导致反射可绕过泛型限制。类型检查发生在编译期,针对引用而非对象本身。擦除后通过桥方法解决多态冲突,自动插入类型转换,但不支持基本类型、静态成员不能使用类级泛型参数,且instanceof无法用于泛型类型判断。
Java泛型类型擦除以及类型擦除带来的问题
Java泛型在编译时会进行类型擦除,所有泛型信息被移除,仅保留原始类型(如Object或限定类型)。例如,List<String>和List<Integer>在运行时均为List,导致无法通过instanceof判断泛型类型。类型检查在编译期完成,基于引用而非对象本身。擦除后的方法重写可能引发桥方法机制以解决多态冲突,且泛型不支持基本数据类型、静态成员不能使用类级泛型参数。反射可绕过泛型限制,自动类型转换由编译器插入强转实现。
|
8天前
|
自定义注解
本文介绍如何在Spring项目中实现自定义注解,结合AOP与过滤器应用于日志、权限控制等场景。通过@Target、@Retention等元注解定义注解,配合Spring AOP或拦截器实现功能增强,提升代码可读性与复用性。
Java基础
重载指方法名相同但参数不同,发生在编译期;重写指父子类中同名同参方法,发生在运行期。String不可变,StringBuilder非线程安全,StringBuffer线程安全,适用于多线程场景。
基础语法与面向对象
classDiagram class Collection {<<interface>>} class List {<<interface>>} class Set {<<interface>>} class Map { <<interface>> entrySet()* keySet()* values()* } Collection <|-- List Collection <|-- Set List <|.. ArrayList List <|.. LinkedList List <|.. Vector Set <|.. HashSet Map <|.. HashMap Map <|..
实用工具:VS Code 配置 Markdown 编译器全指南
本文介绍如何在VS Code中配置高效Markdown写作环境,通过启用内置预览、安装Markdown All in One与Markdown Preview Enhanced插件,并配置Princexml实现PDF等格式导出,全面提升编辑、预览与输出效率,适合程序员、学生及内容创作者使用。
深入理解Python语法分析(从零开始掌握AST与解析器原理)
教程来源https://www.vpshk.cn/本教程带你深入浅出地学习Python语法分析,了解编译原理入门知识。通过ast模块解析代码结构,掌握抽象语法树(AST)的生成与遍历,轻松理解Python解析器工作原理,适合编程新手快速上手。
|
14天前
|
用Java密封类打造更坚固的代码契约
用Java密封类打造更坚固的代码契约
|
14天前
|
Java 17新特性实战:密封类与模式匹配如何提升代码质量
Java 17新特性实战:密封类与模式匹配如何提升代码质量
掌握 Rust 闭包性能优化(从入门到高效实战)
本文来源https://www.vpshk.cn/介绍Rust闭包的核心特性及性能优化技巧,涵盖三种闭包类型(Fn、FnMut、FnOnce)、避免不必要move、减少泛型开销、循环中复用闭包等实用策略,帮助开发者写出高效安全的Rust代码。
免费试用