信息学竞赛java_为什么NOI和NOIP 不支持Java?

谢邀。

首先我们考虑一下Java相对于其他语言的不同之处在哪。

1.Java语言自带虚拟机,这在利用IDE编写代码的语言中间显得特立独行。

2.Java语言属于解释型语言,目前为止OI竞赛中支持的所有语音都是编译型语言,这可能会显得Java比较特殊。虽然系列赛中应用的arbiter评测系统支持Java语言,但是Java语言一旦入选势必会造成Python等其他编程语言的不满。毕竟,在某些方面例如编程复杂度上Python优于Java。

3.支持标准问题。Java语言内置了biginteger类型,能够支持绝大多数的高精度运算,这对于要手写FFT和高精度的选手是不公平的。同样的,c++和Pascal的O2优化似乎也不能在Java中体现。

4.运行时间问题。Java语言的运行时间和空间一直是玄学问题,一般的在线评测系统即使支持Java也会给出双倍的时间限制和空间限制,但是我们一定能保证这样的限制科学吗?万一某些复杂度不对的算法趁机卡过呢?两倍一定不会多或者少吗?不知道。

5.入门难度问题。Java语言主要适用于面向对象编程,这与信息竞赛面向过程编程本质上就有着区别,况且Java语言大量引用类的定义,这对于初学者是很不友好的,教练也不一定愿意教授Java。如果使用的人太少了,支持Java又有什么意义呢?

以上个人所见,大佬轻喷。

upd:感谢评论区dalao的提醒,时间和空间复杂度并不是双倍的,应该是时限和空间限制双倍,已更正。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值