Java 谁能告诉我这个字节码是干什么的吗?
这段代码是用于填充ram内存的android应用程序的一部分。此代码出现在函数中,用于填充10 mb的ram内存。有人能解释一下它的工作原理吗?因为我没有字节码方面的经验,请推荐几个能快速掌握字节码知识的网站。谢谢。字节码是JVM(Java虚拟机)的指令集。Java程序员实际上不必理解Java 谁能告诉我这个字节码是干什么的吗?,java,android,bytecode,Java,Android,Bytecode,这段代码是用于填充ram内存的android应用程序的一部分。此代码出现在函数中,用于填充10 mb的ram内存。有人能解释一下它的工作原理吗?因为我没有字节码方面的经验,请推荐几个能快速掌握字节码知识的网站。谢谢。字节码是JVM(Java虚拟机)的指令集。Java程序员实际上不必理解字节码。JVM使用字节码使Java程序可移植,这意味着它可以在任何平台(Windows、MAC、UNIX、LINUX……)上运行 平台上的JRE解释字节码并将其转换为平台的本地ObjectCode 你可以参考 有关
字节码
。JVM使用字节码使Java程序可移植,这意味着它可以在任何平台(Windows、MAC、UNIX、LINUX……)上运行
平台上的JRE解释字节码并将其转换为平台的本地ObjectCode
你可以参考
有关详细信息从名称
MainActivity$4$1
判断,此代码必须来自MainActivity
内嵌套匿名类中的方法
Java代码应该是这样的:
// Byte code:
// 0: aload_0
// 1: monitorenter
// 2: aload_0
// 3: getfield 17 me/empirical/android/application/fillmemory/MainActivity$4$1:this$1 Lme/empirical/android/application/fillmemory/MainActivity$4;
// 6: getfield 28 me/empirical/android/application/fillmemory/MainActivity$4:this$0 Lme/empirical/android/application/fillmemory/MainActivity;
// 9: bipush 10
// 11: aload_0
// 12: getfield 17 me/empirical/android/application/fillmemory/MainActivity$4$1:this$1 Lme/empirical/android/application/fillmemory/MainActivity$4;
// 15: getfield 28 me/empirical/android/application/fillmemory/MainActivity$4:this$0 Lme/empirical/android/application/fillmemory/MainActivity;
// 18: invokestatic 34 me/empirical/android/application/fillmemory/MainActivity:access$300 (Lme/empirical/android/application/fillmemory/MainActivity;)Landroid/widget/Button;
// 21: invokestatic 38 me/empirical/android/application/fillmemory/MainActivity:access$100 (Lme/empirical/android/application/fillmemory/MainActivity;ILandroid/widget/Button;)V
// 24: aload_0
// 25: monitorexit
// 26: return
// 27: astore_1
// 28: aload_0
// 29: monitorexit
// 30: aload_1
// 31: athrow
// 32: astore_1
// 33: goto -9 -> 24
// Local variable table:
// start length slot name signature
// 0 36 0 this 1
// 27 4 1 localObject Object
// 32 1 1 localException Exception
// Exception table:
// from to target type
// 2 24 27 finally
// 24 26 27 finally
// 28 30 27 finally
// 2 24 32 java/lang/Exception
您可以在Internet上找到许多Java字节码教程。然而,最终的参考是:。搜索jvm指令集或类似的指令集将找到足够的站点,monitorenter/exit是一个
同步的块;没有什么麻烦的事情发生。有一些工具可以帮你拆开它。看起来这应该继续重新堆叠交换。
synchronized (this) {
try {
methodInMainActivity(MainActivity.this, 10, methodThatReturnsButton(MainActivity.this));
} catch (Exception localException) {}
}