相关疑难解决方法(0)

为什么Java的AbstractList的removeRange()方法受到保护?

有没有人有任何想法,为什么AbstractList(以及在ArrayList中)中的removeRange方法是protected?它看起来像一个非常明确和有用的操作,但是,使用它,我们仍然被迫继承List实现.

有一些隐藏的理由吗?对我来说似乎很莫名.

java collections list protected arraylist

96
推荐指数
1
解决办法
3万
查看次数

JVM是开源代码吗?

JVM是开源代码吗?如果没有,我怎样才能获得JVM的代码?

java jvm

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

哪里可以找到java.lang本机方法的源代码?

我对JNI非常熟悉,我很想看到java.lang包中某些本机方法的机器特定实现.Thread#currentThread(), 例如.

我在[JDK_HOME]/jre/bin中找到了一堆DLL,但就像我说的那样,我试图找到源代码.

有谁知道可以找到原生源代码的位置?它是否可用,或者它是否被Sun分类(oops我的意思是"我们在其中赢得它"Oracle)?

java java-native-interface native

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

System.arraycopy(...)的时间复杂度?

System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 是一种本地方法.

这种方法的时间复杂度是多少?

java algorithm time-complexity

31
推荐指数
3
解决办法
1万
查看次数

在Thread类中加载start0()本机方法的本机代码库

我正在寻找一些深入的解释Thread.start()内部如何调用run()方法.我知道它是我的JVM,它通过start()方法在内部调用run(),当我开始检查Thread类的源代码时,我发现以下代码:

    public synchronized void start()
    {
        if(threadStatus != 0)
            throw new IllegalThreadStateException();
        group.add(this);
        start0();
        if(stopBeforeStart)
            stop0(throwableFromStop);
    }

    private native void start0(); 
Run Code Online (Sandbox Code Playgroud)

现在我可以看到start()调用本机方法start0()但我看不到任何与加载本机代码库相关的代码.

请帮我理解完整的呼叫流程.

谢谢,Sandip

java

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