小编Alb*_*s32的帖子

推理方法的最终结果

对不起,这里有一个简单的问题,只是在我的笔记中发现了一些关于最终制作方法的内容.我的笔记声称你应该为这个方法做出决定:

使强制执行不变量成为不可能.

String应该表现为String.

我真的不明白这是什么意思.有人可以帮我分手吗?非常感谢.

java methods final

8
推荐指数
1
解决办法
3954
查看次数

浅浅和平等有什么区别?这是如何应用于缓存的?

在我的笔记中找到以下内容,但我无法理解它:

基元类型包装类为有限数量的值实现缓存.
这保证了有限数量的深度相等的包装器对象也非常相等:如果那样的o1.equals( o2 )o1 == o2.
例如,new Integer( 0 ) == new Integer( 0 ).
一般来说,这并不总是有效.
例如,新的Integer(666)== new Integer(666)
可能不成立.
缓存的原因是它可以节省内存.
通常,缓存适用于"小"原始值.

我不明白这是什么意思,或深(.equals())和浅(==)等于之间的区别.我知道在实践中,.equals必须用于对象,而==用于Integral值,但实际的推理却暗示了我.

我假设名称浅浅可能只是检查两个值是否具有相同的类型和名称,深层检查两个变量是否指向同一个对象?我不知道缓存会如何在这里发挥作用,或者为什么它会有用.

java caching deep-copy shallow-copy

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

quicksort和mergesort有什么区别?

我是否正确地说,在两种算法中,您所做的只是采用您的结构,递归地将其分成两部分,然后以正确的顺序构建您的结构?

那么区别是什么呢?

编辑:我发现了以下算法在quicksort中实现分区,但我真的不明白它是如何工作的,特别是(hi + low) >>> 1用作参数的swop行!任何人都可以理解这个吗?

private static int partition( int[] items, int lo, int hi ) 
{
    int destination = lo;
    swop( items, (hi + lo) >>> 1, hi );
    // The pivot is now stored in items[ hi ].
    for (int index = lo; index != hi; index ++) 
    {
        if (items[ hi ] >= items[ index ]) 
        {
            // Move current item to start.
            swop( items, destination, index );
            destination ++;
        }

        // items[ …
Run Code Online (Sandbox Code Playgroud)

sorting mergesort quicksort

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