SóProvas


ID
464176
Banca
CESGRANRIO
Órgão
Transpetro
Ano
2011
Provas
Disciplina
Programação
Assuntos

Muito utilizada para desenvolvimento de aplicativos Web, a tecnologia Java tem como principal característica gerar aplicações que rodam em qualquer dispositivo que tenha acesso a Internet, utilizando, entre outros recursos, o software

Alternativas
Comentários
  • Resposta correta é a letra E.
    O Java utiliza se do conceito de máquina virtual, onde existe uma camada extra entre o sistema operacional e a aplicação, responsável por “traduzir” (não é apenas isso) o que sua aplicação deseja fazer para as respectivas chamadas do sistema operacional no qual ela está rodando. Dessa forma, você ganha independência de sistema operacional. Ou, melhor ainda, independência de plataforma em geral: não é preciso se preocupar em qual sistema operacional sua aplicação está rodando, nem em que tipo de máquina, configurações etc. Repare que uma máquina virtual é um conceito bem mais amplo que o de um interpretador. Como o próprio nome diz, uma máquina virtual é como um computador de mentira: ela tem tudo que um computador tem. Em outras palavras, ela é responsável por gerenciar memória, gerenciar threads, a pilha de execução, etc. Sua aplicação roda sem nenhum envolvimento com o sistema operacional! Sempre conversando apenas com a Java Virtual Machine (JVM). Uma JVM isola a aplicação totalmente do sistema operacional. Se uma JVM termina abruptamente, só as aplicações que estavam rodando nela irão terminar: isso não afetará outras JVMs que estejam rodando no mesmo computador, nem afetará o sistema operacional. Bytecode é o termo dado ao código binário gerado pelo compilador Java (pois existem menos de 256 códigos de operação dessa linguagem, e cada “opcode” gasta um byte, dando origem ao nome bytecode). O compilador Java gera esse bytecode que, diferente das linguagens sem máquina virtual, vai servir para diferentes sistemas operacionais, já que ele vai ser “traduzido” pela máquina virtual.
  • Complementarmenete, há espaço para rever a arquitetura de uma JVM:

    A Maquina Virtual Java define várias áreas de dados em tempo de execução as quais são usadas durante a execução de um programa. Algumas dessas áreas de dados são criadas na inicialização da Máquina Virtual Java e são destruídas apenas quando a Máquina Virtual Java acaba seu processo. Outras áreas de dados são por threads. Áreas de dados por threads são criadas quando uma thread é criada e são distruidas quando a thread termina seu processo.

    - The pc Register : PROGRAM Counter REGISTER (Per-thread)- Cada thread tem seu próprio registro de contagem de Programa. Eles são atualizados depois de cada byteCode executado – os bytecodes se encontram na Method Area- . O pc Register é dividido basicamente em 4 partes:

    *frame: É uma referencia ao Frame, contem um ponteiro para o método em execução (O método em Execução é o primeiro método (Frame ) na Stack da thread)
    *optop: Contem um ponteiro para o top da operand Stack é usado para avaliar expressões aritméticas(Operand Stack do Frame Referente a Stack da thread )
    *pc - o contador de programa,contem O ENDEREÇO DO PROXIMO BYTECODE QUE SERÁ EXECUTADO(Metodo area)
    *vars - o registrador de variáveis,contem um ponteiro para as local variables. (Local Variables da Frame referente a Stack)
     
    Execution Enviroment = É o frame em execução
    Na stack temos Frames, em frames temos: - Operand Stack, Local Variables e uma Referência a Runtime Constant Pool.