相关疑难解决方法(0)

如何正确比较Java中的两个整数?

我知道,如果你将盒装原始Integer与常量进行比较,例如:

Integer a = 4;
if (a < 5)
Run Code Online (Sandbox Code Playgroud)

a 将自动取消装箱,比较将起作用.

但是,当您比较两个盒装Integers并希望比较相等或小于/大于?时会发生什么?

Integer a = 4;
Integer b = 5;

if (a == b)
Run Code Online (Sandbox Code Playgroud)

以上代码是否会导致检查它们是否是同一个对象,还是会在这种情况下自动取消装箱?

关于什么:

Integer a = 4;
Integer b = 5;

if (a < b)
Run Code Online (Sandbox Code Playgroud)

java autoboxing integer

196
推荐指数
7
解决办法
35万
查看次数

Java中奇怪的整数拳击

我刚刚看到类似这样的代码:

public class Scratch
{
    public static void main(String[] args)
    {
        Integer a = 1000, b = 1000;
        System.out.println(a == b);

        Integer c = 100, d = 100;
        System.out.println(c == d);
    }
}
Run Code Online (Sandbox Code Playgroud)

运行时,这段代码将打印出来:

false
true
Run Code Online (Sandbox Code Playgroud)

我理解为什么第一个是false:因为这两个对象是单独的对象,所以==比较引用.但我无法弄清楚,为什么第二个声明会回来true?当Integer的值在一定范围内时,是否会出现一些奇怪的自动装箱规则?这里发生了什么?

java autoboxing

108
推荐指数
5
解决办法
2万
查看次数

为什么parseInt警告使用valueOf

在查看Integer.parseInt(String s, int radix)(java 8,1.8.0_131)的源代码时,我发现了以下注释块:

/*
* WARNING: This method may be invoked early during VM initialization
* before IntegerCache is initialized. Care must be taken to not use
* the valueOf method.
*/
Run Code Online (Sandbox Code Playgroud)

虽然我理解了关于IntegerCache的第一部分,但我不明白为什么会出现这样的警告valueOf,以及为什么会出现这种情况.

我看到这valueOf()依赖parseInt(),但我仍然不明白为什么会有这个警告.

有人可以解释一下这个评论的确切含义(以及不应该使用valueOf的上下文),以及可能出现的问题.

编辑:

Integer.valueOf(int i)中的代码似乎已经改变,因为下面的评论中的其他问题被问到,现在是

public static Integer valueOf(int i) {
    if (i >= IntegerCache.low && i <= IntegerCache.high)
        return IntegerCache.cache[i + (-IntegerCache.low)];
    return new Integer(i);
}
Run Code Online (Sandbox Code Playgroud)

并且应该从之前的断言错误中保存.

java

51
推荐指数
2
解决办法
2961
查看次数

整数值比较

我是一个新手Java编码器,我只是读取一个整数类的变量,可以在API中描述三种不同的方式.我有以下代码:

if (count.compareTo(0)) { 
            System.out.println(out_table);
            count++;
    }
Run Code Online (Sandbox Code Playgroud)

这是一个循环,只是输出out_table.
我的目标是弄清楚如何查看整数值count > 0.

我意识到这count.compare(0)是正确的方法吗?或者是count.equals(0)吗?

我知道这count == 0是不正确的.这是正确的吗?它的价值比较运算符在哪里count=0

java int autoboxing integer equals

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

如何将int转换为Integer

private static HashMap<Integer, Bitmap> mBitmapCache;         
mBitmapCache.put(R.drawable.bg1,object);                       
Run Code Online (Sandbox Code Playgroud)

R.drawable.bg1int...但我想转换成Integer因为Hashmap采用Integer...并且在几秒内绘制多个对象时,它会创建一个影响代码性能的整数对象运行时...

android

25
推荐指数
2
解决办法
10万
查看次数

包装类在Java中使用的设计模式?

我找到了一篇旧帖子,但没有说明我对Wrapper Classes使用的设计模式的理解,而且,从维基百科阅读时我没有得到任何明确的信息.

包装类是否真的使用任何设计模式?

如果使用模式,那么其模式是它的这些:Decorator Pattern,Facade PatternAdapter Pattern

design-patterns facade decorator adapter wrapper

15
推荐指数
3
解决办法
4424
查看次数

java ==运算符

可能重复:
奇怪的Java拳击

嗨,

有人可以解释为什么最后一个打印返回false吗?

int a = 100;
int b = 100;

System.out.println(a == b); // prints true

Integer aa = 100;
Integer bb = 100;

System.out.println(aa == bb); // prints true

Integer aaa = 1000;
Integer bbb = 1000;

System.out.println(aaa == bbb); // prints false
Run Code Online (Sandbox Code Playgroud)

谢谢迈克尔

java operators

10
推荐指数
1
解决办法
590
查看次数

如何初始化两列arraylist?

我需要创建一个记录两列{int,String}的List.我认为ArrayList是我需要的,但我无法理解它.我从数据库中提取了字符串,而int是我需要识别字符串位置以供日后使用的索引值.

List<List<String>> strArray = ArrayList<List<String>>;

然后我可以为我从数据库中提取的每一行执行类似strArray.add().add()的操作吗?

java android arraylist

8
推荐指数
3
解决办法
6万
查看次数

C#struct内存优化?

我接受了缓刑求职面试(?我不确定这是不是这个词),面试官让我告诉他结构和班级之间有什么区别.

所以我告诉了我所知道的一切以及我在msdn上读过的所有内容.

那家伙说"不够",我没有任何线索.所以他说:

结构是优化的,所以如果有和整数和浮点数,它们有一些相同的咬合,那么它将保存这个空间,所以struct with int=0float=0size的一半int=int.MAX,float=float.MIN.

好的.所以我很喜欢 - 没听说过.

但接下来,在采访之后我正在思考它并且它对我来说并没有多大意义.这意味着,当我们改变其中某个变量的值时,结构大小会有所不同.并且它不能真正存在于内存中,如果在扩展时发生碰撞会怎么样.而且我们必须写一些我们正在滑动的位,不确定它是否会给出任何优化.

另外,他在乞讨时问我,Java中的struct和class有什么不同.我已经回答过,Java中没有结构,他说"不是程序员,而是数字类型是结构"我有点像WTF.

基本上问题是:

这个家伙知道的是什么,这很难被了解(我的意思是,我在网上寻找它,找不到东西)

或许他对自己的工作一无所知,并试图在面试时看起来很酷.

c# java optimization struct memory-optimization

6
推荐指数
1
解决办法
527
查看次数

使用Integer时IntegerCache如何受益?

Integer class,有private static class IntegerCache.
这门课有什么用?

使用时如何受益Integer

java integer

4
推荐指数
2
解决办法
2013
查看次数