Sobre as características da linguagem de programação Java, analise as afirmativas a seguir. I. Devido a JVM (Java Virtual Machine), a linguagem Java evidencia ampla portabilidade, sendo possível que programas escritos por ela possam rodar em diversas plataformas de hardware e software. II. Utiliza um método de tradução híbrido que, a partir da compilação do código, gera um bytecode que, posteriormente, é interpretado pela JVM (Java Virtual Machine). III. Possui o recurso de coletor de lixo que, durante a execução de um programa, libera a memória de objetos que não possuem mais referências ativas, de forma automática, sem que o programador escreva instruções para tal tarefa. Está correto o que se afirma em
- A)I, II e III.
A alternativa reúne as três afirmações corretas sobre Java. A linguagem é portável porque o código é compilado em bytecode e executado pela JVM em diferentes sistemas, tem modelo híbrido de compilação mais interpretação, e conta com garbage collector que libera automaticamente objetos sem referências ativas. Por isso, o conjunto I, II e III está integralmente de acordo com as características clássicas da plataforma Java.
- B)I e II, apenas.
Aqui se afirma que apenas I e II estariam corretas, deixando de fora a III. O problema é que a III também corresponde ao funcionamento de Java, pois o garbage collector faz a gestão automática da memória e remove objetos inalcançáveis durante a execução. Assim, a alternativa reduz indevidamente o alcance das características descritas pela linguagem.
- C)I e III, apenas.
Esta opção considera corretas apenas I e III, excluindo a II. Mas a II descreve corretamente o fluxo de compilação de Java para bytecode, seguido de execução na JVM, que é justamente o modelo híbrido tradicional associado à linguagem. Portanto, ao desconsiderar a etapa de bytecode interpretado ou executado pela máquina virtual, a alternativa fica incompleta.
- D)II e III, apenas.
A alternativa sustenta que somente II e III estão corretas, afastando a I. Isso não procede, porque a portabilidade é uma das marcas centrais de Java: o bytecode gerado pela compilação pode rodar em qualquer ambiente que disponha de JVM compatível. Como a I também está correta, a opção deixa de contemplar uma característica essencial da linguagem.
Gabarito: A
A Java ficou famosa justamente por juntar portabilidade com uma execução intermediada pela JVM. Na prática, o código-fonte .java é compilado para bytecode, que não é executado diretamente pelo sistema operacional, mas sim pela Java Virtual Machine. Isso permite que um mesmo programa rode em diferentes plataformas, desde que exista uma JVM adequada para aquele ambiente. É o famoso lema do "write once, run anywhere", que costuma aparecer bastante em provas. A afirmativa I está correta porque a JVM funciona como uma camada de abstração entre o programa e o hardware/sistema operacional, favorecendo a portabilidade. A II também está correta, pois o processo clássico da Java é híbrido: compila primeiro para bytecode e depois esse bytecode é interpretado e/ou executado pela JVM, com otimizações internas. A III também está correta, já que a linguagem conta com garbage collector, responsável por liberar automaticamente objetos sem referências ativas, evitando que você fique gerenciando memória na mão o tempo todo. Em outras palavras, a banca cobrou três marcas registradas da Java: portabilidade, bytecode e coleta automática de lixo. Quem conhece o básico da linguagem mata essa questão sem sofrimento. E, sim, é um daqueles casos em que a teoria e a prática andam de mãos dadas - bem educadinhas, por sinal.