下面是一段代码,我需要通过传递消息来存储有关警告消息的一些信息.传递给它的参数是一个变量,它由API调用设置SAPListOfMessages,返回一个数组String.然而,我注意到,只要有超过1个警告,列表就是2D,messageList(x-1)显然会导致错误,因为它不是正确的索引.同样奇怪的是,for each循环似乎忽略了维度,并且不知何故只是将数组展平并循环遍历它,就好像它是1D一样.我看到的唯一方法是在做其他任何事情之前检查数组有多少维度,因此我的问题.我无法找到任何有关维度数量的信息 - 我只找到了有关其边界的信息.是否可以在VBA中找到数组的维数?如果没有,你会怎么建议我解决这个问题?
Sub getOverlapWarnings(ByRef messageList As Variant, ByRef warnings As Dictionary)
Dim msg As Variant
Dim x As Integer
x = 1
'look for an overlap warning message in the list of messages
For Each msg In messageList
'look for the keyword 'overlap' in the list of messages
If InStr(1, msg, "overlap") <> 0 Then
warnings.Add messageList(x - 1), msg
End If
x = x + 1
Next msg
End …Run Code Online (Sandbox Code Playgroud) 我试图理解Java源代码是如何执行的,我对JVM内部的JIT编译器实际上是什么感到困惑.首先,让我告诉您我是如何理解从Java源代码到在计算机上执行机器代码的过程.也许,我误解了导致混乱的过程中的某些事情.
步骤:
现在,根据维基百科关于JVM的文章,更具体地说是"字节码解释器和即时编译器"部分,为了执行Java字节码,你需要一个解释器(但我们有一个JIT 编译器).
现在这里有点困惑我.我把它分成了引号:
"当解释器执行Java字节码时,执行总是比编译成本机机器语言的同一程序的执行慢."
由于计算机只能执行机器代码,并且解释器在将字节码转换为机器代码方面比编译器慢,为什么JVM使用解释器而不是编译器?
为什么我们没有为JIT编译器为CPU生成另一个中间可执行文件,以便它可以快速执行指令?
"JIT编译器可以在执行程序时将Java字节码转换为本机机器语言.然后,程序的翻译部分可以比它们解释的更快地执行.这种技术可以应用于经常执行的程序的那些部分."
JIT编译器真的是一个能够编译频繁执行的代码的解释器吗?编译器和解释器这两个术语是否可以互换使用?
提前致谢.