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

相关推荐

  • 在云原生环境中实现高效的负载均衡策略

    云原生环境中实现高效负载均衡关键在于适配动态变化的资源与需求平衡、智能化的流量分配以及持续的性能优化。1、依据服务的实时性能指标做出动态路由决策是至关重要的。2、采用微服务架构以支持更灵活的伸缩响应也不可忽视。3、使用多层负载均衡框架以提升处理能力可以增强系统的响应性和可靠性。更进一步,4、整合AI…

    2023年12月20日
    19700
  • 项目管理etc怎么算

    标题:项目管理ETC(Estimate to Complete)的计算方法 项目管理中,ETC(Estimate to Complete)是评估完成剩余工作所需成本的关键参数。该参数通常借助以下三种核心方法:1、通过剩余工作的预算成本直接评估;2、将项目总体性能考虑在内;3、基于剩余工作与过去绩效的…

    2024年1月8日
    28600
  • oa系统知名品牌

    标题:知名OA系统品牌探究 摘要 当探讨办公自动化(OA)系统的领先品牌时,1、微软Office 365 无疑占据了市场的领先位置。它提供了一系列集成的办公工具和服务,如Email、文件存储、协作平台。特别是OneDrive 和 SharePoint,它们促进了文件的共享与协作,极大地提高了组织效率…

    2024年1月15日
    12900
  • 产品经理使用什么软件

    产品经理在日常工作中需要使用的软件有:一、项目管理软件;二、原型设计软件;三、数据分析软件;四、会议软件。项目管理软件有JIRA、Trello,IRA是一款非常流行的项目管理软件,许多软件开发团队都使用它来跟踪任务和问题。 一、项目管理软件 1、JIRA JIRA是一款非常流行的项目管理软件,许多软…

    2023年3月3日
    41900
  • java @Bean和@Autowired有什么区别

    区别是:@Bean修饰的方法表示初始化一个对象并交由Spring IOC去管理,@Bean 只能和@Component @Repository @Controller @Service @Configration 配合使用。@Autowired 可修饰变量和方法,用于完成自动装配(将需要的外部资源注…

    2023年2月13日
    53000
  • 物理机、虚拟机、容器的区别是什么

    物理机、虚拟机、容器的区别是:物理机对应采购的服务器设备,又叫裸设备。虚拟机与现在流行的“云计算”的概念的有着紧密联系,虚拟机的概念在IaaS层,即基础设施即服务部分,容器,也是虚拟层的概念,相对虚拟机而言,容器更加轻量级。 物理机 物理机,对应采购的服务器设备,又叫裸设备,bare metal,随…

    2023年2月13日
    69500
  • oa审批是什么

    OA审批是企业内部基于办公自动化系统中的一种审批流程, 用于处理日常工作中的各种申请和审批事务。OA审批关键在于提升效率、透明化流程。系统通常包含出差申请、请假申请、费用报销等。在使用方面,员工可通过系统提出申请,相关管理者则根据既定规则审批或转发,流程自动化程度高。 OA审批流程的数字化管理是这个…

    2024年1月11日
    72600
  • Zoho中国CEO侯康宁:每条新曲线背后都是骨肉之痛,长期主义基于战略定力

    文| babayage 编辑 | 笑 笑 7年清华人 文明心智,野蛮体魄 1981年8月27日,在坐了18个小时(其中17小时是站席)的火车之后,16岁的侯康宁来到清华大学新生报到处完成了手续,成为清华大学自动化系1981级自12班的一员。 ▲侯康宁一直珍藏着清华学生用的副食证和澡堂票。 考上清华是…

    2022年3月20日
    74400
  • 如何量化考核软件开发人员绩效

    如何量化考核软件开发人员绩效在高效管理团队中发挥着至关重要的作用。开发质量、代码贡献量、任务完成率、技术创新能力和团队协作为量化绩效的核心指标。在这些维度中,技术创新能力代表着开发者对新技术的掌握以及应用创新解决方案的能力,对团队和项目的长期发展起到推动作用。 在更深入的议论中,考核的准确性与条理性…

    2024年1月9日
    43300
  • 为什么说 Python 是强类型语言

    这是因为:python不倾向于对变量的类型做隐式转换,根据定义可以判定是一门强类型语言。Python很少会隐式地转换变量的类型,一般而言,在编译期就确定变量类型的是静态类型语言,在运行期才确定变量类型的则是动态类型语言。 python不倾向于对变量的类型做隐式转换,根据定义可以判定是一门强类型语言。…

    2023年2月21日
    63900

发表回复

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

400-800-1024

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

分享本页
返回顶部