Long vs Integer, long vs int, what to use and when?(Long vs Integer,long vs int,什么时候使用?)
问题描述
有时我看到 API 使用 long 或 Long 或 int 或 Integer,但我想不通如何做出决定?
Sometimes I see API's using long or Long or int or Integer, and I can't figure how the decision is made for that?
我应该什么时候选择?
推荐答案
Long是long的Object形式,Integer是int的对象形式.
Long is the Object form of long, and Integer is the object form of int.
long 使用 64 位.int 使用 32 位,因此最多只能保存 ±20 亿的数字(-231 到 +231-1).
The long uses 64 bits. The int uses 32 bits, and so can only hold numbers up to ±2 billion (-231 to +231-1).
你应该使用long和int,除非你需要使用继承自Object的方法,例如hashcode代码>.Java.util.collections 方法通常使用盒装(Object-wrapped)版本,因为它们需要适用于任何 Object 和原语类型,如 int 或 long,不是 Object.
You should use long and int, except where you need to make use of methods inherited from Object, such as hashcode. Java.util.collections methods usually use the boxed (Object-wrapped) versions, because they need to work for any Object, and a primitive type, like int or long, is not an Object.
另一个区别是 long 和 int 是 pass-by-value,而 Long 和 Integer 是 pass-by-reference 值,与所有非原始 Java 类型一样.因此,如果可以修改 Long 或 Integer (不是,它们在不使用 JNI 代码的情况下是不可变的),还有另一个理由使用其中一个.
Another difference is that long and int are pass-by-value, whereas Long and Integer are pass-by-reference value, like all non-primitive Java types. So if it were possible to modify a Long or Integer (it's not, they're immutable without using JNI code), there would be another reason to use one over the other.
最后一个区别是 Long 或 Integer 可以是 null.
A final difference is that a Long or Integer could be null.
这篇关于Long vs Integer,long vs int,什么时候使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Long vs Integer,long vs int,什么时候使用?
基础教程推荐
- 如何对 Java Hashmap 中的值求和 2022-01-01
- 修改 void 函数的输入参数,然后读取 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13
- 使用堆栈算法进行括号/括号匹配 2022-01-01
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
- 存储 20 位数字的数据类型 2022-01-01
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01
- Struts2 URL 无法访问 2022-01-01
- RabbitMQ:消息保持“未确认"; 2022-01-01
