gpt4 book ai didi

java - 可运行代码正在循环其操作

转载 作者:行者123 更新时间:2023-12-01 08:52:09 26 4
gpt4 key购买 nike

我不明白下面的代码 fragment 。这是我从 android 的 AsynchronousChannelGroupImpl 类中获取的代码 fragment 。下面这些我不明白。

1) var1 被指定为最终的,但我们正在执行主体中更改它。

2) var1 指向从“new Runnable() {....}”创建的 Runnable 对象的内存地址。在 Runnable 对象的堆内存中,有 run() 方法。该run()方法使用AccessController类变量到达AccessControler的doPrivileged()方法,该方法包含新创建的PrivilegedAction对象的内存地址和var3作为其参数。但是这个新创建的PrivilegedAction对象再次调用它的run()方法来调用var1的run()方法。这有点循环 Action 。

3) 所以 var1 总是指向固定位置,因为它是最终的。它可以调用它的 run 方法,因为 run() 方法位于它的内存地址内。但是,每次创建的新 PrivilegedAction 对象都没有定义且一致。我们不能说这个对象包含这么多的堆内存空间,因为内部,它再次要求 var1 以 var1.run() 的形式运行它的 run() 方法

我想知道这个 fragment 是如何改变系统内部的内存结构的?我想从计算机体系结构的角度了解。

public final void execute(final Runnable var1) {
SecurityManager var2 = System.getSecurityManager();
if(var2 != null) {
final AccessControlContext var3 = AccessController.getContext();
var1 = new Runnable() {
public void run() {
AccessController.doPrivileged(new PrivilegedAction() {
public Void run() {
var1.run();
return null;
}
}, var3);
}
};
}

this.executeOnPooledThread(var1);
}

最佳答案

Java 反编译字节码不适合程序员。不要把你的逻辑放在那里。

关于java - 可运行代码正在循环其操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42321410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com