有没有人有任何想法,为什么在AbstractList(以及在ArrayList中)中的removeRange方法是protected?它看起来像一个非常明确和有用的操作,但是,使用它,我们仍然被迫继承List实现.
有一些隐藏的理由吗?对我来说似乎很莫名.
我对JNI非常熟悉,我很想看到java.lang包中某些本机方法的机器特定实现.Thread#currentThread(), 例如.
我在[JDK_HOME]/jre/bin中找到了一堆DLL,但就像我说的那样,我试图找到源代码.
有谁知道可以找到原生源代码的位置?它是否可用,或者它是否被Sun分类(oops我的意思是"我们在其中赢得它"Oracle)?
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 是一种本地方法.
这种方法的时间复杂度是多少?
我正在寻找一些深入的解释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