Onde é que a JVM encontra a implementação dos métodos native (por exemplo, System.arrayCopy)?
Há três tipos de métodos nativos da API padrão do Java.
- O método é compilado nativamente pela JVM, como é o caso de System.arraycopy (que é transformado para um conjunto de instruções de linguagem de máquina que efetua a cópia dos bytes do array de forma extremamente rápida e eficiente);
- O método encontra-se na própria JVM (no caso do Windows, seria a JVM.DLL, que está em jre\bin\client\jvm.dll ou jre\bin\server\jvm.dll)
- O método encontra-se em uma das DLLs que estão no diretório jre\bin (por exemplo, o suporte ao AWT encontra-se em awt.dll, ao java.util.zip em zip.dll ).
[quote=entanglement]Há três tipos de métodos nativos da API padrão do Java.
- O método é compilado nativamente pela JVM, como é o caso de System.arraycopy (que é transformado para um conjunto de instruções de linguagem de máquina que efetua a cópia dos bytes do array de forma extremamente rápida e eficiente);
- O método encontra-se na própria JVM (no caso do Windows, seria a JVM.DLL, que está em jre\bin\client\jvm.dll ou jre\bin\server\jvm.dll)
- O método encontra-se em uma das DLLs que estão no diretório jre\bin (por exemplo, o suporte ao AWT encontra-se em awt.dll, ao java.util.zip em zip.dll ).
[/quote]
E os fontes? Vem no JDK também?
O pacote de sources tem uma pasta chamada native que tem a implementação dos métodos natives. Mas voce nao vai encontrar o da JVM lá, só da API.