处理中的整数或整数?
Integer or int in Processing?
当我在 Processing 中创建整数变量时,我应该使用 int
还是 Integer
?他们似乎都以同样的方式工作。您可以选择使用哪一个?
// The same thing?
int a = 5;
Integer b = 4;
// I prefer Integer because it looks like String:
Integer c = 95;
String d = "Hello!";
// Then again, int looks like char:
int e = 3;
char f = 'a';
我想这可能正是人们喜欢的,尽管 int
用得更多?
它们有不同的用途。 int
是原始类型,而 Integer
是对象。
原语 int
的默认值为 0,而 Integer
将默认为 null。基元使用的内存要少得多,只有一个内存位置,占用 32 或 64 位。一个对象需要更多的开销。
除非您需要 null 整数或其他一些要求,否则请坚持使用 int
。
供参考:
https://processing.org/reference/int.html
https://processing.org/tutorials/objects/
int
类型是 原始 数据类型。这意味着您可以在任何可以使用 原始文字 的地方使用它,您可以将其视为键入的数字,例如 1、2、3、99、-15、等等
但是,您不能在必须使用 Object 的地方使用 int。例如,这段代码将无法编译:
void setup(){
ArrayList<int> list = new ArrayList<int>();
}
此代码无法编译,因为通用参数需要 class,而 int 是原始类型,而不是 class。那么我们如何获得整数的 ArrayList?
这就是 原始包装对象 发挥作用的地方。它们是 wrap 原始类型(例如 int)的对象。这样你就可以更正上面的代码:
void setup(){
ArrayList<Integer> list = new ArrayList<Integer>();
}
其他原始包装器 classes 包括 Float、Boolean、Character 等
但是,由于 自动装箱 和 自动拆箱 ,它变得更加复杂。基本上,Java(因此处理)将自动在原始值和它们的原始包装器class之间转换。这就是为什么你可以做这样的事情:
void setup(){
int primitive = 7;
Integer wrapper = 7;
println(primitive == wrapper);
}
因此,就您的目的而言,您使用哪一个可能无关紧要,因为Java(因此处理)会自动为您转换它。
但是,使用 Integer 而不是 int 可能会创建您并不真正需要的对象,更重要的是,它可能会阻止您使用 Processing.js 模式。
推荐阅读:
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
http://en.wikipedia.org/wiki/Primitive_wrapper_class
http://docs.oracle.com/javase/tutorial/java/data/autoboxing.html
当我在 Processing 中创建整数变量时,我应该使用 int
还是 Integer
?他们似乎都以同样的方式工作。您可以选择使用哪一个?
// The same thing?
int a = 5;
Integer b = 4;
// I prefer Integer because it looks like String:
Integer c = 95;
String d = "Hello!";
// Then again, int looks like char:
int e = 3;
char f = 'a';
我想这可能正是人们喜欢的,尽管 int
用得更多?
它们有不同的用途。 int
是原始类型,而 Integer
是对象。
原语 int
的默认值为 0,而 Integer
将默认为 null。基元使用的内存要少得多,只有一个内存位置,占用 32 或 64 位。一个对象需要更多的开销。
除非您需要 null 整数或其他一些要求,否则请坚持使用 int
。
供参考: https://processing.org/reference/int.html https://processing.org/tutorials/objects/
int
类型是 原始 数据类型。这意味着您可以在任何可以使用 原始文字 的地方使用它,您可以将其视为键入的数字,例如 1、2、3、99、-15、等等
但是,您不能在必须使用 Object 的地方使用 int。例如,这段代码将无法编译:
void setup(){
ArrayList<int> list = new ArrayList<int>();
}
此代码无法编译,因为通用参数需要 class,而 int 是原始类型,而不是 class。那么我们如何获得整数的 ArrayList?
这就是 原始包装对象 发挥作用的地方。它们是 wrap 原始类型(例如 int)的对象。这样你就可以更正上面的代码:
void setup(){
ArrayList<Integer> list = new ArrayList<Integer>();
}
其他原始包装器 classes 包括 Float、Boolean、Character 等
但是,由于 自动装箱 和 自动拆箱 ,它变得更加复杂。基本上,Java(因此处理)将自动在原始值和它们的原始包装器class之间转换。这就是为什么你可以做这样的事情:
void setup(){
int primitive = 7;
Integer wrapper = 7;
println(primitive == wrapper);
}
因此,就您的目的而言,您使用哪一个可能无关紧要,因为Java(因此处理)会自动为您转换它。
但是,使用 Integer 而不是 int 可能会创建您并不真正需要的对象,更重要的是,它可能会阻止您使用 Processing.js 模式。
推荐阅读:
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
http://en.wikipedia.org/wiki/Primitive_wrapper_class
http://docs.oracle.com/javase/tutorial/java/data/autoboxing.html