questãozinha de concurso

Não entendi essa…

  • Sistemas Java geralmente consistem de um ambiente, a linguagem, a interface de programas aplicativos Java e várias bibliotecas de classes. Os programas Java normalmente passam por cinco fases para serem executados. Sendo a primeira a edição de um arquivo, quando o programa é digitado e a última a execução propriamente dita, as três intermediárias restantes a partir da edição são denominadas, em seqüência:

A) compilação, carga e verificação.
B) carga, verificação e interpretação.
C) interpretação, compilação e carga.
D) verificação, interpretação e compilação.

.
.
.
.
.

Resposta (passe o mouse):[color=white] letra A[/color]

http://www.acm.uiuc.edu/sigmil/RevEng/ch02.html

Por esta página, em “Java Compilation Process” a compilação sempre é a primeira etapa. Então…

[quote=alindre]Não entendi essa…

  • Sistemas Java geralmente consistem de um ambiente, a linguagem, a interface de programas aplicativos Java e várias bibliotecas de classes. Os programas Java normalmente passam por cinco fases para serem executados. Sendo a primeira a edição de um arquivo, quando o programa é digitado e a última a execução propriamente dita, as três intermediárias restantes a partir da edição são denominadas, em seqüência:

A) compilação, carga e verificação.
B) carga, verificação e interpretação.
C) interpretação, compilação e carga.
D) verificação, interpretação e compilação.

[/quote]

Para responder nem precisa conhecer o modelo da jvm

depois de ter o codigo editado vc o compila. como a primeira opção é a unica que começa com “compilar”, tem que ser a resposta certa :slight_smile: ( qq um com minimo de conhecimento responderia certo devido à incompetencia de quem formulou a pergunta)

mas olhando do ponto de vista do modelo da jvm, após a compilação vc tem o .class.
Quando um programa usar a essa classe a jvm procura o .class e o carrega (carga) usando um ClassLoader. Para o .class seja aceita e subido na memoria da jvm, ele precisa ser verificado. A verificação é uma feature de segurança e impede - por exemplo- que codigo java 5 seja carrega no máquina 1.4. uma vez verificado o codigo é “oficialmente” carregado e logo depois executado.
Veja que “executado” é o termo correto. Portanto “interpretado” está ali só para enganar.

Em jme a verificação acontece antes da carga ( acontece junto à compliação) e é chamada de pre-verificação. Por isso(?) o texto começa com “geramlmente”