Java不能实现真正泛型的原因是什么

Java不能实现真正泛型的原因是:1、兼容性;2、不是“实现不了”。兼容性是指Java 在 2004 年已经积累了较为丰富的生态,如果把现有的类修改为泛型类,需要让所有的用户重新修改源代码并且编译,这就会导致 Java 1.4 之前打下的江山可能会完全覆灭。

Java不能实现真正泛型的原因是什么-Worktile社区

1、兼容性

Java 在 2004 年已经积累了较为丰富的生态,如果把现有的类修改为泛型类,需要让所有的用户重新修改源代码并且编译,这就会导致 Java 1.4 之前打下的江山可能会完全覆灭。想象一下,你的代码原来运行的好好的,就因为 JDK 的升级,导致所有的源代码都无法编译通过并且无法运行,是不是会非常痛苦?

类型擦除就完美实现了兼容性,Java 1.5 之后的类可以使用泛型,而 Java 1.4 之前没有使用泛型的类也可以保留,并且不用做任何修改就能在新版本的 Java 虚拟机上运行。老用户不受影响,新用户可以自由地选择使用泛型,可谓一举两得。

2、不是“实现不了”

Java 语言和其他编程语言不一样,有着沉重的历史包袱,1.5 之前已经有大量的程序部署在生产环境下了,这时候如果一刀切,原来没有使用泛型的代码直接扼杀了,后果不堪想象。

Java 一直以来都强调兼容性,我认为这也是 Java 之所以能被广泛使用的主要原因之一,开发者不必担心 Java 版本升级的问题,一个在 JDK 1.4 上可以跑的代码,放在 JDK 1.5 上仍然可以跑。

这里必须得说明一点,J2SE1.5 的发布,是 Java 语言发展史上的重要里程碑,为了表示该版本的重要性,J2SE1.5 也正式更名为 Java SE 5.0,往后去就是 Java SE 6.0,Java SE 7.0。

但 Java 并不支持高版本 JDK 编译生成的字节码文件在低版本的 JRE(Java 运行时环境)上跑。

延伸阅读:

什么是Java

Java programming language具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的”形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种”以对象为导向”的方式。使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。

使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。

Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。常用的Java平台基于Java1.8,最近版本为Java19。

文章标题:Java不能实现真正泛型的原因是什么,发布者:小编,转载请注明出处:https://worktile.com/kb/p/36131

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年1月30日 下午10:39
下一篇 2023年1月30日 下午10:42

相关推荐

  • web前端和Java后端有什么区别

    web前端和Java后端的区别有:1、定义不同;2、所用技术不同;3、展示方式不同。Web前端指在Web应用中,用户能够看到的触摸到的东西,其中包括网页的结构、Web的外观、以及在Web级别上的交互实现。后端更多地与数据库交互,以处理相应的业务逻辑。 1、定义不同 前端:顾名思义,就是来做Web的前…

    2023年2月7日
    42000
  • 什么是精益化生产管理

    精益化生产管理是:利用杜绝浪费和无间断的作业流程,而非分批和排队等候的一种生产方式。精益生产是衍生自丰田生产方式的的管理哲学。精益化生产是通过系统结构、人员组织、运行方式和市场供求等方面的变革,使生产系统能很快适应用户需求不断变化,并能使生产过程中一切无用、多余的东西被精简。 一、什么是精益化生产管…

    2023年5月6日
    61100
  • 主成分分析在处理降维压缩和降噪时应用的区别是什么

    主成分分析在处理降维压缩和降噪时应用的区别是:1、降维压缩,在降维压缩方面,PCA主要用于减少数据维度,同时保留数据中最重要的信息;2、降噪,在降噪方面,PCA主要用于去除数据中的噪声,提高数据的信噪比。 一、降维压缩 在降维压缩方面,PCA主要用于减少数据维度,同时保留数据中最重要的信息。它通过将…

    2023年7月30日
    46100
  • Scrum冲刺评审会议的有效策略是什么

    为了促进Scrum冲刺评审会议的成效,关键在于遵循一系列策略,从而确保会议具有方向性、高效性并且能够创造价值。1) 明确目标和议程 以确保参与者对会议的期望与目的有共同的认识。2) 适时邀请干系人 以便分享进展,收集反馈并促进透明沟通。3) 准备充分展示 来展现冲刺期间的工作成果。4) 主动收集和主…

    2023年12月11日
    20200
  • 区块链隐私保护方法是什么

    区块链隐私保护方法包括:1、基于混合技术;2、基于环签名的匿名技术;3、基于零知识证明的方法;4、安全多方计算。基于混合技术分为带中心和去中心混合,为了打乱输入和输出之间的对应关系,使得其他用户不知道来源,即实现交易的不可追踪性。 1、基于混合技术 基于混合技术分为带中心和去中心混合,为了打乱输入和…

    2023年1月27日
    87300
  • 管理软件团队研发

    管理软件团队研发乃工程管理中的挑战性任务。1、需求分析明确;2、沟通协作顺畅;3、研发流程标准化;4、技术架构优良;5、团队文化正面。特别强调3、研发流程标准化**,它能保证项目按照一定的规范前进,有助于提高软件质量,缩短上市时间,确保团队成员之间的效率和合作。 一、需求分析 精准需求分析是研发工作…

    2024年1月10日
    12200
  • Java中的职业发展和认证路径是

    摘要:开启Java职业道路涉及多个核心阶段:1、基础学习与实践、2、进阶熟练与专业化、3、高级认证与领袖成长。在基础学习与实践中,重要的是掌握Java编程基础、数据结构和算法等基本概念。掌握基础不仅是走向复杂问题解决的门槛,而且是开展有效的团队合作和个人职业成长的前提。接下来,进阶阶段要求程序员深入…

    2024年1月8日
    12700
  • oa办公软件有哪些

    OA办公软件通常提供的功能有1、内部沟通与协作、2、日程管理、3、文档处理、4、项目管理、5、人员与考勤管理。里面,内部沟通与协作的部分通常是企业运转最核心的部分,因为它支持团队成员之间高效、实时的交流,还包括文件共享、讨论区和视频会议等功能;这些工具有利于提高团队的协作效率和公司的运营效率。 一、…

    2024年1月11日
    12400
  • 渠道sdk与联运sdk和聚合sdk有什么区别

    渠道sdk与联运sdk和聚合sdk的区别有:1、应用场景不同;2、合作对象不同;3、功能定制程度不同。渠道SDK主要用于应用发布过程中的渠道管理,联运SDK主要用于游戏开发中的游戏联运,而聚合SDK主要用于整合多个第三方SDK。 一、渠道SDK(Channel SDK) 渠道SDK是针对移动应用发布…

    2023年7月30日
    50200
  • 如何在远程工作环境中保持研发效能

    在当前的职场环境中,远程工作成为了一种普遍模式,然而,维持和提升研发效能依然是众多企业追求的目标。主要策略有1、明确目标和期望;2、使用正确的工具和平台;3、建立有效的沟通机制;4、制定团队协作协议;5、追踪进度和绩效;6、关注员工福祉。实施这些策略能够帮助远程研发团队保持清晰的方向,利用合适的技术…

    2023年11月17日
    14300

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部