相关疑难解决方法(0)

使用哪一个,int或Integer

我需要创建一个数据传输对象,我将用它来存储从数据库中检索的记录.在这个数据传输对象中,我需要声明一个数字字段.对于哪个更好 - intInteger

如果我将字段定义为Integer,如果我要从DB中检索超过2000条记录,是否会因"整数"类型而对性能产生影响!

提前致谢.

java database performance primitive types

60
推荐指数
4
解决办法
4万
查看次数

为什么不在Java中缓存整数?

我知道这个主题有类似的帖子,但它们并没有完全解决我的问题.当你这样做时:

Integer a = 10;
Integer b = 10;
System.out.println("a == b: " + (a == b));
Run Code Online (Sandbox Code Playgroud)

这将(显然)打印true大部分时间,因为[-128,127]范围内的整数以某种方式被缓存.但:

Integer a = new Integer(10);
Integer b = new Integer(10);
System.out.println("a == b: " + (a == b));
Run Code Online (Sandbox Code Playgroud)

会回来false.我理解我要求整数的新实例,但由于盒装原语在Java中是不可变的,并且机器已经在那里做"正确的事情"(如第一种情况所示),为什么会发生这种情况?

如果具有10的Integer的所有实例在内存中都是相同的对象,那会不会更有意义?换句话说,为什么我们没有"Integer interning",这类似于"String interning"?

更好的是,如果表示同一事物的盒装基元的实例(无论值(和类型)是否是同一个对象),它会更有意义吗?或者至少正确回答==

java autoboxing equality

25
推荐指数
3
解决办法
6167
查看次数

Java 整数类型常量声明 - 原语还是对象?

在 Java 中,通过对象方式声明的 int 常量有什么好处:

public final static Integer SOME_CONSTANT = Integer.valueOf(99);
Run Code Online (Sandbox Code Playgroud)

而不是经典

public final static int SOME_CONSTANT = 99;
Run Code Online (Sandbox Code Playgroud)

我知道对象和原语之间的基本区别,还有自动装箱。但是我在我们公司的代码中看到了这个声明,我想知道将整数常量声明为对象有什么特别的原因吗?

java

5
推荐指数
1
解决办法
9022
查看次数

在Java中,Integer对象应该优先于int原语(对于其他数字类型是否相同)?

好的,所以我理解Integer只是一个包装类.但是我担心的是避免使用"包装器",在使用原始的int变量时,执行时间可能会有微优化.

我的问题是,真正的Integer对象是我们应该使用的对象,特别是在需要具有出色性能的程序中(我的意思是,重要的,O(N ^ n)算法,需要数天的算法) .

另外,double vs Double,float vs Float等的情况相同.

java performance micro-optimization

4
推荐指数
1
解决办法
1522
查看次数