为什么Java不支持无符号整数?

在我看来,这似乎是一个奇怪的遗漏,因为它们允许一个人编写的代码不太可能在意外的大输入上产生溢出.

此外,使用无符号整数可以是一种self 记录的形式,因为它们表明无符号整数要保存的值永远不应该是负值.

最后,在某些情况下,无符号整数对于某些运算(如除法)可能更有效.

包括这些有什么坏处?

推荐答案

这是一篇关于简单性的interview with Gosling and others篇文章:

高斯林:作为一名语言设计师,我现在并不认为自己是语言设计师,"简单"最终的真正含义是,我能指望J.Random Developer在他的头脑中掌握规范吗.这个定义说,举例来说,Java并不是——事实上,这些语言中的很多最终都会出现很多没有人真正理解的情况.对任何C开发人员进行无符号测试,很快你就会发现几乎没有C开发人员真正了解无符号的情况,什么是无符号算术.这类事情让C变得复杂.我认为Java的语言部分相当简单.你必须查的图书馆.

Java相关问答推荐

获取拦截器内部的IP地址

是否有一种格式模式,可以在除0之外的数字前面有正负符号?

如何计算内循环的时间复杂度?

将linkedHashMap扩展到Java中的POJO类

如何使用解析器组合子解析Java数组类型签名?

Javascript更新alert 可扩展内容样式与CSS—按钮更多/更少

Java List with all combinations of 8 booleans

无法在org. openjfx:javafx—fxml:21的下列变体之间进行 Select

';com.itextpdf.ext.html.WebColors已弃用

如何判断一个矩阵是否为有框矩阵?

在JavaFX项目中注册组合框的控件FX验证器时,模块系统出错

如何从Keyloak映射Hibernate实体中的用户

如何将其他属性引用到log4j2 yaml配置中?

Docker不支持弹性APM服务器

Spring Boot&;Docker:无法执行目标org.springframework.boot:spring-boot-maven-plugin:3.2.0:build-image

在settings.gradle.kts和Build.gradle.kts中使用公共变量

一对多关系和ID生成

如何使这两种方法合二为一?

Java类型推断:为什么要编译它?

如何在java中从以百分比表示的经过时间和结束日期中找到开始日期