Buscar

Desenvolvimento de Software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
 
1. 
 
 
Qual será a saída obtida pelo seguinte trecho com sintaxe Java? 
int a = 1, b=100; 
while( ++a < 5 ) 
 b = b / a; 
System.out.println(b); 
 
 
 
25 
 
 
4,17 
 
 
4 
 
 
12,5 
 
 
96 
 
 
 
Explicação: 
Primeira rodada: a = 2, b = 100 / 2 = 50. Segunda rodada: a = 3, b = 50 / 3 = 16. 
Terceira rodada: a= 4, b = 16 / 4 = 4 
 
 
2. 
 
 
Considerando que as variáveis inteiras a e b foram previamente declaradas e 
inicializadas, qual das opções seguintes apresentaria erro de compilação para o 
comando for? 
 
 
for(; ++a < b-- ;) 
 
 
for(a=1,b=5; a < b ;a++,b--) 
 
 
for(; a <= b;) 
 
 
for(a=1; a = 10; a++) 
 
 
for(a=1;b >= a*2;b--) 
 
 
 
Explicação: 
No comando for, a seção de teste aceita apenas um valor booleano, e não inteiro, como 
ocorre em a=10. Lembrando que a comparação é feita com ==. 
 
 
3. 
 
 
__________________ é a tecnologia que gerencia a memória alocada para um 
programa, a fim de liberar objetos que não estão sendo utilizados. Complete a 
questão escolhendo um dos itens a sequir: 
 
 
Java Virtual Machine 
 
 
Garbage Collector 
 
 
Java Collector 
 
 
Garbage Drunk 
 
 
Java Clean 
 
Explicação: 
O coletor de lixo, ou Garbage Collector, elimina da memória os objetos que não podem 
mais ser referenciados. 
 
 
 
4. 
 
 
Considerando três variáveis inteiras, x, y, e w, onde x vale 1 e y vale 5, qual o valor de w 
após a execução do comando? 
w = 200 / (5 - (x < y) ? 1 : 3) + 2; 
 
 
 
33 
 
 
50 
 
 
66 
 
 
102 
 
 
52 
 
 
 
Explicação: 
Como x é menor que y, 5 - 1 = 4. A divisão tem precedência sobre a soma, logo, 200 / 4 = 
50, e 50 + 2 = 52. 
2 
 
 
5. 
 
 
Indique a opção que apresenta apenas operadores relacionais. 
 
 
 
Operadores &, |, ^ e ! 
 
 
Operadores +, -, < e ^ 
 
 
Operadores >=, <, == e != 
 
 
Operadores +, -, * e / 
 
 
Operadores >, <, = e ! 
 
 
Explicação: 
Operadores relacionais analisam relações entre números, podendo ser >, <, >=, <=, == 
ou !=. 
 
 
6. 
 
 
Considerando o código seguinte, em Java, quais os valores de x,y e w, 
respectivamente? 
int a = 5, b = 32, c = 7; 
boolean x, y, w; 
x = (b > a) && (c > b); 
y = (b < c) || (a < b - c); 
w = (a + c < b) && !(c > a); 
 
 
 
false, true e true 
 
 
true, false e true 
 
 
true, false e false 
 
 
false, true e false 
 
 
true, true e false 
 
 
 
Explicação: 
T && F -> F, F || T -> T, T && !T -> T && F -> F 
 
1. 
 
 
Qual será a saída obtida pelo seguinte trecho com sintaxe Java? 
int a = 1, b=100; 
while( ++a < 5 ) 
 b = b / a; 
System.out.println(b); 
 
 
4,17 
 
 
4 
 
 
12,5 
 
 
96 
 
 
25 
 
 
 
Explicação: 
Primeira rodada: a = 2, b = 100 / 2 = 50. Segunda rodada: a = 3, b = 50 / 3 = 16. 
Terceira rodada: a= 4, b = 16 / 4 = 4 
 
 
2. 
 
 
Considerando que as variáveis inteiras a e b foram previamente declaradas e 
inicializadas, qual das opções seguintes apresentaria erro de compilação para o 
comando for? 
 
 
for(; a <= b;) 
 
 
for(a=1; a = 10; a++) 
 
 
for(a=1,b=5; a < b ;a++,b--) 
 
 
for(a=1;b >= a*2;b--) 
 
 
for(; ++a < b-- ;) 
 
 
Explicação: 
No comando for, a seção de teste aceita apenas um valor booleano, e não inteiro, como 
ocorre em a=10. Lembrando que a comparação é feita com ==. 
 
3 
 
3. 
 
 
Considerando o código seguinte, em Java, quais os valores de x,y e w, 
respectivamente? 
int a = 5, b = 32, c = 7; 
boolean x, y, w; 
x = (b > a) && (c > b); 
y = (b < c) || (a < b - c); 
w = (a + c < b) && !(c > a); 
 
 
 
false, true e true 
 
 
true, false e true 
 
 
true, true e false 
 
 
true, false e false 
 
 
false, true e false 
 
 
Explicação: 
T && F -> F, F || T -> T, T && !T -> T && F -> F 
 
4. 
 
 
Considerando três variáveis inteiras, x, y, e w, onde x vale 1 e y vale 5, qual o valor 
de w após a execução do comando? 
w = 200 / (5 - (x < y) ? 1 : 3) + 2; 
 
 
 
102 
 
 
52 
 
 
50 
 
 
33 
 
 
66 
 
Explicação: 
Como x é menor que y, 5 - 1 = 4. A divisão tem precedência sobre a soma, logo, 200 / 4 
= 50, e 50 + 2 = 52. 
5. 
 
 
Indique a opção que apresenta apenas operadores relacionais. 
 
 
 
Operadores >=, <, == e != 
 
 
Operadores +, -, < e ^ 
 
 
Operadores +, -, * e / 
 
 
Operadores &, |, ^ e ! 
 
 
Operadores >, <, = e ! 
 
 
 
Explicação: 
Operadores relacionais analisam relações entre números, podendo ser >, <, >=, <=, == 
ou !=. 
 
 
 
 
 
6. 
 
 
__________________ é a tecnologia que gerencia a memória alocada para um programa, 
a fim de liberar objetos que não estão sendo utilizados. Complete a questão escolhendo 
um dos itens a sequir: 
 
 
Java Collector 
 
 
Java Virtual Machine 
 
 
Garbage Drunk 
 
 
Java Clean 
 
 
Garbage Collector 
 
 
 
Explicação: 
O coletor de lixo, ou Garbage Collector, elimina da memória os objetos que não podem 
mais ser referenciados. 
 
4 
 
1. 
 
 
Podemos dizer que é um modelo para criação de objetos. 
 
 
 
Polimorfismo 
 
 
Conexão 
 
 
Objeto 
 
 
Classe 
 
 
Herança 
 
 
 
Explicação: 
A classe funciona para os objetos como um "tipo" para uma "variável", pois define o molde 
ou domínio que será adotado pelos objetos criados. 
 
 
 
 
 
2. 
 
 
Qual a função do encapsulamento? 
 
 
 
Instanciar um objeto dentro de classes privadas. 
 
 
Fazer a transferência de dados segura entre usuário e servidor. 
 
 
Impedir o acesso direto a um atributo. 
 
 
Fazer uma conexão entre usuário e servidor. 
 
 
Cria novos objetos. 
 
 
 
Explicação: 
Tradicionalmente o encapsulamento é feito com o uso de getters e setters públicos para o 
controle do acesso aos atributos privados. 
 
 
 
3. 
 
 
Em termos de herança, em determinadas situações é necessário acessar um método 
do pai a partir do método de mesmo nome do filho, quando tratamos de uma 
operação sobrescrita no processo de polimorfismo. Qual palavra reservada do Java 
permite este acesso? 
 
 
this 
 
 
extends 
 
 
super 
 
 
new 
 
 
implements 
 
 
 
Explicação: 
A palavra super é utilizada quando desejamos acessar um método existente no pai ou outra 
superclasse da linha hierárquica, podendo ser utilizado inclusive em construtores. 
 
4. 
 
 
Quando existe a necessidade de reescrever um método herdado da classe pai, 
mantendo a mesma assinatura que o método original, incluindo mesmo nome, 
mesmo tipo de dado de retorno e mesma lista de parâmetros, estamos nos referindo 
a que técnica? 
 
 
Sobrecarga 
 
 
Encapsulamento 
 
 
Herança 
 
 
Sobrescrita 
 
 
Agregação 
 
 
 
Explicação: 
O polimorfismo, ou sobrescrita, consiste na possibilidade de recriar um método herdado, 
mantendo sua assinatura, o que é diferente de sobrecarga, onde são utilizadas múltiplas 
assinaturas para um mesmo método ou função. 
 
5 
 
 
5. 
 
 
Acerca de interfaces, na sintaxe Java, qual a informação correta? 
 
 
 
Define regras para o comportamento de classes de uma mesma família. 
 
 
É implementada pelas classes com o uso de extends. 
 
 
Deve ser definida com o uso de abstract class. 
 
 
Permite a definição de métodos concretos.É um elemento totalmente abstrato, com um conjunto de assinaturas de 
métodos. 
 
 
 
Explicação: 
Uma interface é definida pela palavra interface e implementada com o uso de implements. 
Contém apenas assinaturas de métodos que podem ser implementados por qualquer 
classe, diferentemente de classes abstratas, que definem regras para uma família 
específica de classes descendentes. 
 
 
 
 
 
6. 
 
 
Quando falamos das ações que um objeto pode realizar estamos nos referindo a: 
 
 
 
Nível de Acesso 
 
 
Agrupamentos 
 
 
Atributos 
 
 
Métodos 
 
 
Herança 
 
 
 
Explicação: 
Os elementos básicos de uma classe são os métodos, definindo ações que podem ser 
executadas, e atributos, com as características físicas do objeto que será instanciado. 
 
1. 
 
 
Qual a função do encapsulamento? 
 
 
 
Instanciar um objeto dentro de classes privadas. 
 
 
Impedir o acesso direto a um atributo. 
 
 
Cria novos objetos. 
 
 
Fazer a transferência de dados segura entre usuário e servidor. 
 
 
Fazer uma conexão entre usuário e servidor. 
 
 
 
Explicação: 
Tradicionalmente o encapsulamento é feito com o uso de getters e setters públicos para o 
controle do acesso aos atributos privados. 
 
 
 
 
 
2. 
 
 
Podemos dizer que é um modelo para criação de objetos. 
 
 
 
Conexão 
 
 
Classe 
 
 
Objeto 
 
 
Polimorfismo 
 
 
Herança 
 
 
 
Explicação: 
A classe funciona para os objetos como um "tipo" para uma "variável", pois define o molde 
ou domínio que será adotado pelos objetos criados. 
 
6 
 
 
3. 
 
 
Acerca de interfaces, na sintaxe Java, qual a informação correta? 
 
 
 
Define regras para o comportamento de classes de uma mesma família. 
 
 
É implementada pelas classes com o uso de extends. 
 
 
Permite a definição de métodos concretos. 
 
 
É um elemento totalmente abstrato, com um conjunto de assinaturas de 
métodos. 
 
 
Deve ser definida com o uso de abstract class. 
 
 
 
Explicação: 
Uma interface é definida pela palavra interface e implementada com o uso de implements. 
Contém apenas assinaturas de métodos que podem ser implementados por qualquer 
classe, diferentemente de classes abstratas, que definem regras para uma família 
específica de classes descendentes. 
 
4. 
 
 
Quando existe a necessidade de reescrever um método herdado da classe pai, 
mantendo a mesma assinatura que o método original, incluindo mesmo nome, 
mesmo tipo de dado de retorno e mesma lista de parâmetros, estamos nos referindo 
a que técnica? 
 
 
Herança 
 
 
Agregação 
 
 
Sobrecarga 
 
 
Encapsulamento 
 
 
Sobrescrita 
 
 
 
Explicação: 
O polimorfismo, ou sobrescrita, consiste na possibilidade de recriar um método herdado, 
mantendo sua assinatura, o que é diferente de sobrecarga, onde são utilizadas múltiplas 
assinaturas para um mesmo método ou função. 
 
 
5. 
 
 
Em termos de herança, em determinadas situações é necessário acessar um método do 
pai a partir do método de mesmo nome do filho, quando tratamos de uma operação 
sobrescrita no processo de polimorfismo. Qual palavra reservada do Java permite este 
acesso? 
 
 
super 
 
 
new 
 
 
this 
 
 
extends 
 
 
implements 
 
 
 
Explicação: 
A palavra super é utilizada quando desejamos acessar um método existente no pai ou 
outra superclasse da linha hierárquica, podendo ser utilizado inclusive em construtores. 
 
 
 
 
 
6. 
 
 
Quando falamos das ações que um objeto pode realizar estamos nos referindo a: 
 
 
 
Herança 
 
 
Agrupamentos 
 
 
Métodos 
 
 
Atributos 
 
 
Nível de Acesso 
 
 
 
Explicação: 
Os elementos básicos de uma classe são os métodos, definindo ações que podem ser 
executadas, e atributos, com as características físicas do objeto que será instanciado. 
7 
 
1. 
 
 
A biblioteca Java apresentam diversos tipos de estruturas de coleção, através do 
framework Collections. Uma destas estruturas funciona da mesma forma que uma 
tabela, com o relacionamento entre uma chave única e um conjunto de dados. Qual é 
esta estrutura? 
 
 
HashMap 
 
 
Collection 
 
 
List 
 
 
Vector 
 
 
ArrayList 
 
Explicação: 
O uso de HashMap viabiliza a construção de coleções de pares chave-valor, onde as chaves 
não permitem duplicidade. 
 
 
2. 
 
 
O uso do JCF permite a criação de estruturas bastante complexas, como a apresentada a 
seguir: 
ArrayList< HashMap< Integer, ArrayList< String > > > 
estruturaX; 
Esta estrutura define uma coleção de elementos HashMap, onde cada elemento do 
HashMap é definido por uma chave inteira e uma coleção do tipo String. Qual seria o 
comando para adicionar o texto "XPTO" à coleção de chave 12 do HashMap que ocupa a 
terceira posição na coleção de HashMaps? 
 
 
estruturaX.put(3,12,"XPTO"); 
 
 
estruturaX.add(2,12,"XPTO"); 
 
 
estruturaX.get(2).get(12).add("XPTO"); 
 
 
estruturaX.get(3).put(12,"XPTO"); 
 
 
estruturaX.get(2,12).add("XPTO"); 
 
 
 
Explicação: 
Para obter o terceiro HashMap é utilizado estruturaX.get(2). Em seguida podemos obter o 
ArrayList de chave 12 com get(12), e finalmente adicionar o texto. De uma forma menos 
direta: 
HashMap<integer,arraylist> alfa = estruturaX.get(2); 
ArrayList beta = alfa.get(12); 
beta.add("XPTO");</integer,arraylist 
 
 
3. 
 
 
Quando se cria um programa de computador em Java, há possibilidade de ocorrerem erros 
imprevistos durante sua execução. Esses erros são conhecidos como exceções e podem 
ser provenientes de falhas na lógica ou acesso a dispositivos ou arquivos externos. As 
exceções, portanto, ocorrem quando algo imprevisto acontece, e elas podem ser 
provenientes de erros de lógica ou acesso a recursos que talvez não estejam disponíveis. 
Sobre o tratamento de exceções em Java, assinale a afirmativa INCORRETA. 
 
 
As exceções em Java são fixas e não é possível definir novas exceções. 
 
 
A cláusula catch nem sempre é executada. 
 
 
Uma exceção é sempre um objeto do tipo Throwable. 
 
 
A cláusula try sempre é executada, mas a sequencia completa pode ser 
interrompida por uma exceção. 
 
 
A cláusula finally é sempre executada, mesmo ocorrendo o fluxo em um bloco 
try/catch. 
 
 
 
Explicação: 
No Java é possível definir exceções de forma muito simples, bastando derivar da classe 
Exception ou de suas descendentes. 
 
 
 
 
 
 
 
 
 
 
 
8 
 
4. 
 
 
A linguagem Java traz algumas palavras específicas para o tratamento de execeções, 
definindo o controle de fluxo para estas situações. Qual palavra é utilizada para definir um 
bloco de execução obrigatória, mesmo que na ocorrência de exceção? 
 
 
throws 
 
 
throw 
 
 
catch 
 
 
try 
 
 
finally 
 
 
 
Explicação: 
O comando try (tentar) serve para definir um bloco protegido, sendo o fluxo de exceção 
desviado para catch, e finally executado de forma obrigatória. O comando throw lança uma 
exceção, e o comando throws ecoa para o chamador do método. 
 
 
5. 
 
 
Acerca das anotações, é correto afirmar: 
 
 
 
São classes que servem para guardar lembretes durante o processo de 
programação. 
 
 
São interfaces comuns, que devem ser implementadas pelas classes com o uso 
de implements. 
 
 
Não permitem a definição de valores default, e qualquer parâmetro definido 
precisa ser preenchido durante a utilização. 
 
 
É apenas um tipo de comentário que surgiu na versão 5 do Java. 
 
 
São metadadosanexados aos elementos de programação que podem ser 
recuperados através de reflexividade computacional. 
 
 
 
Explicação: 
As anotações são metadados não serializáveis que podem ser anexados aos elementos de 
programação para o reconhecimento posterior a partir de ferramentas externas. Não se 
trata de comentários simples, a definição é feita com o uso de @interface e elas aceitam 
valores default. 
 
6. 
 
 
Com relação à programação com uso de classes genéricas, esta é uma abordagem 
que: 
 
 
Está presente desde as primeiras versões do Java, onde estas classes eram 
classificadas como POJO. 
 
 
É aplicável exclusivamente às coleções, não sendo utilizada em nenhum outro 
ferramental do Java. 
 
 
Trabalha com metadados anexados aos elementos de programação, visando o 
reconhecimento por ferramentas externas. 
 
 
Trabalha de forma abstrata, exigindo a utilização da palavra abstract na definição 
da classe. 
 
 
Permite a definição de comportamentos, como filas e pilhas, os quais serão 
complementados com a escolha da(s) classe(s) de interesse. 
 
 
 
Explicação: 
Viabilizadas a partir da versão 5 do Java, as classes genéricas permitem a modelagem 
comportamental prevista há muito tempo na UML com o nome de classes template. 
Embora a biblioteca JCF tenha adotado este paradigma para implementação, é possível 
criar novas classes genéricas no Java, não estando restrito às coleções. 
 
1. 
 
 
Com relação à programação com uso de classes genéricas, esta é uma abordagem que: 
 
 
 
Trabalha com metadados anexados aos elementos de programação, visando o 
reconhecimento por ferramentas externas. 
 
 
Está presente desde as primeiras versões do Java, onde estas classes eram 
classificadas como POJO. 
 
 
Permite a definição de comportamentos, como filas e pilhas, os quais serão 
complementados com a escolha da(s) classe(s) de interesse. 
 
 
Trabalha de forma abstrata, exigindo a utilização da palavra abstract na definição 
da classe. 
 
 
É aplicável exclusivamente às coleções, não sendo utilizada em nenhum outro 
ferramental do Java. 
 
 
 
Explicação: 
Viabilizadas a partir da versão 5 do Java, as classes genéricas permitem a modelagem 
comportamental prevista há muito tempo na UML com o nome de classes template. 
Embora a biblioteca JCF tenha adotado este paradigma para implementação, é possível 
criar novas classes genéricas no Java, não estando restrito às coleções. 
 
 
9 
 
 
2. 
 
 
Acerca das anotações, é correto afirmar: 
 
 
 
São metadados anexados aos elementos de programação que podem ser 
recuperados através de reflexividade computacional. 
 
 
São classes que servem para guardar lembretes durante o processo de 
programação. 
 
 
São interfaces comuns, que devem ser implementadas pelas classes com o uso 
de implements. 
 
 
É apenas um tipo de comentário que surgiu na versão 5 do Java. 
 
 
Não permitem a definição de valores default, e qualquer parâmetro definido 
precisa ser preenchido durante a utilização. 
 
 
 
Explicação: 
As anotações são metadados não serializáveis que podem ser anexados aos elementos de 
programação para o reconhecimento posterior a partir de ferramentas externas. Não se 
trata de comentários simples, a definição é feita com o uso de @interface e elas aceitam 
valores default. 
 
 
3. 
 
 
Quando se cria um programa de computador em Java, há possibilidade de ocorrerem 
erros imprevistos durante sua execução. Esses erros são conhecidos como exceções 
e podem ser provenientes de falhas na lógica ou acesso a dispositivos ou arquivos 
externos. As exceções, portanto, ocorrem quando algo imprevisto acontece, e elas 
podem ser provenientes de erros de lógica ou acesso a recursos que talvez não 
estejam disponíveis. Sobre o tratamento de exceções em Java, assinale a afirmativa 
INCORRETA. 
 
 
A cláusula finally é sempre executada, mesmo ocorrendo o fluxo em um bloco 
try/catch. 
 
 
A cláusula try sempre é executada, mas a sequencia completa pode ser 
interrompida por uma exceção. 
 
 
Uma exceção é sempre um objeto do tipo Throwable. 
 
 
As exceções em Java são fixas e não é possível definir novas exceções. 
 
 
A cláusula catch nem sempre é executada. 
 
 
 
Explicação: 
No Java é possível definir exceções de forma muito simples, bastando derivar da classe 
Exception ou de suas descendentes. 
 
4. 
 
 
A linguagem Java traz algumas palavras específicas para o tratamento de execeções, 
definindo o controle de fluxo para estas situações. Qual palavra é utilizada para 
definir um bloco de execução obrigatória, mesmo que na ocorrência de exceção? 
 
 
finally 
 
 
try 
 
 
throw 
 
 
catch 
 
 
throws 
Explicação: 
O comando try (tentar) serve para definir um bloco protegido, sendo o fluxo de exceção 
desviado para catch, e finally executado de forma obrigatória. O comando throw lança uma 
exceção, e o comando throws ecoa para o chamador do método. 
 
5. 
 
 
O uso do JCF permite a criação de estruturas bastante complexas, como a 
apresentada a seguir: 
ArrayList< HashMap< Integer, ArrayList< String > > > 
estruturaX; 
Esta estrutura define uma coleção de elementos HashMap, onde cada 
elemento do HashMap é definido por uma chave inteira e uma coleção do tipo 
String. Qual seria o comando para adicionar o texto "XPTO" à coleção de 
chave 12 do HashMap que ocupa a terceira posição na coleção de HashMaps? 
 
 
estruturaX.add(2,12,"XPTO"); 
 
 
estruturaX.get(2).get(12).add("XPTO"); 
 
 
estruturaX.put(3,12,"XPTO"); 
 
 
estruturaX.get(3).put(12,"XPTO"); 
 
 
estruturaX.get(2,12).add("XPTO"); 
 
 
 
 
 
10 
 
6. 
 
 
A biblioteca Java apresentam diversos tipos de estruturas de coleção, através do 
framework Collections. Uma destas estruturas funciona da mesma forma que uma tabela, 
com o relacionamento entre uma chave única e um conjunto de dados. Qual é esta 
estrutura? 
 
 
Vector 
 
 
HashMap 
 
 
List 
 
 
ArrayList 
 
 
Collection 
 
 
 
Explicação: 
O uso de HashMap viabiliza a construção de coleções de pares chave-valor, onde as chaves 
não permitem duplicidade. 
 
1. 
 
 
As duas bibliotecas para GUI oferecidas pelo JDK trabalham com o uso de conteineres, 
os quais agrupam componentes visuais sobre eles com o uso de componentes do tipo 
Layout. Qual Layout trabalha com as posições North, South, East, West e Center? 
 
 
BoxLayout 
 
 
GridLayout 
 
 
GridBagLayout 
 
 
FlowLayout 
 
 
BorderLayout 
 
 
 
Explicação: 
O correto seria BorderLayout, o qual aceita apenas um componente em cada uma das 
cinco posições, mas este componente pode ser um painel, com outro layout, como para 
adicionar os botões de OK e Cancela na posição South, bastando colocá-los em um Panel 
com FlowLayout. 
 
 
2. 
 
 
Existem diversas bibliotecas para criação de interfaces gráficas com uso de Java, e 
duas delas já estão presentes no JDK. Quais são elas? 
 
 
awt e swt 
 
 
swt e swing 
 
 
awt e swing 
 
 
jdbc e swing 
 
 
awt e jdbc 
 
 
 
Explicação: 
As bibliotecas seriam awt e swing. O pacote swt é voltado para criação de GUI, mas 
relacionado à IBM, e não ao JDK padrão, e com relação ao jdbc, não se refere a janelas, 
mas à conexão e manuseio do banco de dados. 
 
3. 
 
 
No uso de um JOpyionPane, um dos parâmetros se refere ao ícone que será utilizado 
para representar o tipo de mensagem. Qual das opções a seguir NÃO é válida para a 
definição deste ícone? 
 
 
JOptionPane.QUESTION_MESSAGE 
 
 
JOptionPane.INFORMATION_MESSAGEJOptionPane.EXCLAMATION_MESSAGE 
 
 
JOptionPane.ERROR_MESSAGE 
 
 
JOptionPane.WARNING_MESSAGE 
 
 
 
Explicação: 
As opções válidas são INFORMATION_MESSAGE, ícone com a letra "i", 
QUESTION_MESSAGE, com uma interrogação, ERROR_MESSAGE, com um "x" estilizado, e 
WARING_MESSAGE, trazendo uma exclamação. 
 
 
11 
 
4. 
 
 
Entre os diversos elementos ouvintes disponibilizados pelas bibliotecas gráficas do Java, 
qual deles poderia ser utilizado para acompanhar o movimento do mouse sobre o 
componente? 
 
 
FocusListener 
 
 
TextListener 
 
 
MouseMotionListener 
 
 
MouseListener 
 
 
ActionListener 
 
 
 
Explicação: 
Para acompanhar o mouse deve ser utilizado MouseMotionListener, e a implementação de 
seus métodos mouseMoved, para movimentos sem o uso do botão pressionado, e 
mouseDragged, para situações de tratamento de arraste. 
 
 
 
 
 
5. 
 
 
As interfaces ouvintes servem para a captura de eventos no ambiente gráfico criado com o 
uso de Java. Qual ouvinte deve ser utilizado para a captura do clique sobre um botão ou 
item de menu? 
 
 
KeyListener 
 
 
ActionListener 
 
 
ChangeListener 
 
 
ItemListener 
 
 
FocusListener 
 
 
 
Explicação: 
Eventos de clique, como estes, são capturados com o uso de ActionListener e a 
implementação de seu único método, o actionPerformed. 
 
 
 
 
 
6. 
 
 
Qual componente gráfico deve ser utilizado para representar opções mutuamente 
exclusivas em uma janela de cadastro? 
 
 
JRadioButton 
 
 
JButton 
 
 
JTree 
 
 
JLabel 
 
 
JCheckBox 
 
 
 
Explicação: 
O uso de JRadioButton permite a definição de opções mutuamente exclusivas, ou seja, se 
uma é marcada, as demais são desmarcadas. 
 
1. 
 
 
Qual componente gráfico deve ser utilizado para representar opções mutuamente 
exclusivas em uma janela de cadastro? 
 
 
JCheckBox 
 
 
JButton 
 
 
JLabel 
 
 
JTree 
 
 
JRadioButton 
 
 
 
Explicação: 
O uso de JRadioButton permite a definição de opções mutuamente exclusivas, ou seja, se 
uma é marcada, as demais são desmarcadas. 
12 
 
2. 
 
 
As interfaces ouvintes servem para a captura de eventos no ambiente gráfico criado com 
o uso de Java. Qual ouvinte deve ser utilizado para a captura do clique sobre um botão 
ou item de menu? 
 
 
ActionListener 
 
 
FocusListener 
 
 
KeyListener 
 
 
ChangeListener 
 
 
ItemListener 
 
 
 
Explicação: 
Eventos de clique, como estes, são capturados com o uso de ActionListener e a 
implementação de seu único método, o actionPerformed. 
 
3. 
 
 
No uso de um JOpyionPane, um dos parâmetros se refere ao ícone que será utilizado 
para representar o tipo de mensagem. Qual das opções a seguir NÃO é válida para a 
definição deste ícone? 
 
 
JOptionPane.QUESTION_MESSAGE 
 
 
JOptionPane.ERROR_MESSAGE 
 
 
JOptionPane.WARNING_MESSAGE 
 
 
JOptionPane.INFORMATION_MESSAGE 
 
 
JOptionPane.EXCLAMATION_MESSAGE 
 
 
 
Explicação: 
As opções válidas são INFORMATION_MESSAGE, ícone com a letra "i", 
QUESTION_MESSAGE, com uma interrogação, ERROR_MESSAGE, com um "x" estilizado, e 
WARING_MESSAGE, trazendo uma exclamação. 
 
 
 
 
 
4. 
 
 
Entre os diversos elementos ouvintes disponibilizados pelas bibliotecas gráficas do Java, 
qual deles poderia ser utilizado para acompanhar o movimento do mouse sobre o 
componente? 
 
 
TextListener 
 
 
MouseMotionListener 
 
 
ActionListener 
 
 
FocusListener 
 
 
MouseListener 
 
 
 
Explicação: 
Para acompanhar o mouse deve ser utilizado MouseMotionListener, e a implementação de 
seus métodos mouseMoved, para movimentos sem o uso do botão pressionado, e 
mouseDragged, para situações de tratamento de arraste. 
 
5. 
 
 
Existem diversas bibliotecas para criação de interfaces gráficas com uso de Java, e 
duas delas já estão presentes no JDK. Quais são elas? 
 
 
awt e swing 
 
 
jdbc e swing 
 
 
awt e jdbc 
 
 
awt e swt 
 
 
swt e swing 
 
 
 
Explicação: 
As bibliotecas seriam awt e swing. O pacote swt é voltado para criação de GUI, mas 
relacionado à IBM, e não ao JDK padrão, e com relação ao jdbc, não se refere a janelas, 
mas à conexão e manuseio do banco de dados. 
 
 
13 
 
6. 
 
 
As duas bibliotecas para GUI oferecidas pelo JDK trabalham com o uso de conteineres, os 
quais agrupam componentes visuais sobre eles com o uso de componentes do tipo 
Layout. Qual Layout trabalha com as posições North, South, East, West e Center? 
 
 
BoxLayout 
 
 
GridBagLayout 
 
 
GridLayout 
 
 
FlowLayout 
 
 
BorderLayout 
 
 
 
Explicação: 
O correto seria BorderLayout, o qual aceita apenas um componente em cada uma das 
cinco posições, mas este componente pode ser um painel, com outro layout, como para 
adicionar os botões de OK e Cancela na posição South, bastando colocá-los em um Panel 
com FlowLayout. 
 
1. 
 
 
As tags responsáveis por quebra de linha, criação de parágrafo e criação de formulários 
são, respectivamente: 
 
 
< br > < p > < h1 > 
 
 
< p > < br > < form > 
 
 
< br > < p > < form > 
 
 
< h1 > < p > < br > 
 
 
< form > < br > < h1 > 
 
 
 
Explicação: 
As tags seriam br (break), p (paragraph) e form. A tag h1 define uma fonte de título 
grande. 
 
 
 
 
 
2. 
 
 
Qual comando CSS seria utilizado para formatar uma camada de id "XPTO" com fonte na 
cor azul? 
 
 
XPTO {background-color:blue} 
 
 
#XPTO {background-color:blue} 
 
 
#XPTO {color:blue} 
 
 
XPTO {color:blue} 
 
 
.XPTO {color:blue} 
 
 
 
Explicação: 
A sintaxe CSS permite a formatação de tags, sem o uso de símbolos iniciais, IDs, com o 
uso de #, e classes, com o uso de ponto. A cor da fonte é definida através de color, 
enquanto o fundo é definido por background-color. Baseado nisso, a sintaxe correta seria 
#XPTO{color:blue}. 
 
3. 
 
 
No JavaScript, a caixa de mensagem "alert": 
 
 
 
Permite que o usuário insira um nome dentro da caixa de texto. 
 
 
Solicita uma confirmação do usuário, positiva ou negativa. 
 
 
Permite que o usuário insira um número dentro da caixa de texto. 
 
 
Exibe apenas uma informação para o usuário. 
 
 
Permite que o usuário insira um nome e/ou um número dentro da caixa de texto. 
 
 
 
Explicação: 
Enquanto alert apenas exibe informações, o prompt solicita uma informação no formato 
texto, e o confirm pede uma resposta do tipo OK ou Cancel. 
 
 
 
14 
 
 
 
4. 
 
 
Quanto à validação de formulários em Java Script, é correto afirmar que: 
 
 
 
Efetua críticas relativas à formatação e regras simples de interface, ao mesmo 
tempo em que diminui o fluxo de chamadas desnecessárias ao servidor. 
 
 
Quando associada ao evento de envio do formulário necessita de uma função 
sem retorno de valor. 
 
 
Pode ser utilizada para substituir os testes de consistência referentes aos 
relacionamentos do banco de dados, normalmente efetuados no servidor. 
 
 
As críticas relativas à formatação são realizadas com sucessivas chamadas ao 
servidor. 
 
 
Permite se utilizar de recursos locais, entre eles o acesso a bancos de dados e 
arquivos presentes no computador cliente. 
 
 
 
Explicação: 
O uso de JavaScript nos formulários irá permitir validações simples, mas não podem ser 
feitos acessos a recursos servidores, como críticas em Bancos de Dados, ou aos recursos 
locais da máquina, como arquivos. A principal finalidade é diminuir o fluxode dados 
incorretos até o servidor. 
 
5. 
 
 
Diversos eventos podem ser utilizados no processo de validação de formulários. Qual 
deles deve ser utilizado para efetuar críticas quando o valor de um campo é 
alterado? 
 
 
onblur 
 
 
onsubmit 
 
 
onfocus 
 
 
onchange 
 
 
onclick 
 
 
 
Explicação: 
O evento onchange ocorre na mudança do atributo value, não importando a origem desta 
mudança. 
 
 
 
 
 
6. 
 
 
Na sintaxe da linguagem HTML para a construção de formulários, qual o tipo de INPUT 
deve ser utilizado para opções mutuamente exclusivas? 
 
 
text 
 
 
sumbit 
 
 
hidden 
 
 
radio 
 
 
checkbox 
 
 
 
Explicação: 
Usando componentes radio com o mesmo "name", é possível definir elementos 
mutuamente exclusivos, ou seja, ao marcar uma opção as demais são desmarcadas. 
 
1. 
 
 
As tags responsáveis por quebra de linha, criação de parágrafo e criação de formulários 
são, respectivamente: 
 
 
< br > < p > < h1 > 
 
 
< br > < p > < form > 
 
 
< p > < br > < form > 
 
 
< form > < br > < h1 > 
 
 
< h1 > < p > < br > 
 
 
 
Explicação: 
As tags seriam br (break), p (paragraph) e form. A tag h1 define uma fonte de título 
grande. 
 
 
15 
 
2. 
 
 
Qual comando CSS seria utilizado para formatar uma camada de id "XPTO" com fonte na 
cor azul? 
 
 
#XPTO {background-color:blue} 
 
 
.XPTO {color:blue} 
 
 
XPTO {color:blue} 
 
 
#XPTO {color:blue} 
 
 
XPTO {background-color:blue} 
 
 
 
Explicação: 
A sintaxe CSS permite a formatação de tags, sem o uso de símbolos iniciais, IDs, com o 
uso de #, e classes, com o uso de ponto. A cor da fonte é definida através de color, 
enquanto o fundo é definido por background-color. Baseado nisso, a sintaxe correta seria 
#XPTO{color:blue}. 
 
 
3. 
 
 
Na sintaxe da linguagem HTML para a construção de formulários, qual o tipo de INPUT 
deve ser utilizado para opções mutuamente exclusivas? 
 
 
sumbit 
 
 
hidden 
 
 
text 
 
 
radio 
 
 
checkbox 
 
 
 
Explicação: 
Usando componentes radio com o mesmo "name", é possível definir elementos 
mutuamente exclusivos, ou seja, ao marcar uma opção as demais são desmarcadas. 
 
 
 
 
 
4. 
 
 
Quanto à validação de formulários em Java Script, é correto afirmar que: 
 
 
 
Pode ser utilizada para substituir os testes de consistência referentes aos 
relacionamentos do banco de dados, normalmente efetuados no servidor. 
 
 
Permite se utilizar de recursos locais, entre eles o acesso a bancos de dados e 
arquivos presentes no computador cliente. 
 
 
Quando associada ao evento de envio do formulário necessita de uma função 
sem retorno de valor. 
 
 
Efetua críticas relativas à formatação e regras simples de interface, ao mesmo 
tempo em que diminui o fluxo de chamadas desnecessárias ao servidor. 
 
 
As críticas relativas à formatação são realizadas com sucessivas chamadas ao 
servidor. 
 
 
 
Explicação: 
O uso de JavaScript nos formulários irá permitir validações simples, mas não podem ser 
feitos acessos a recursos servidores, como críticas em Bancos de Dados, ou aos recursos 
locais da máquina, como arquivos. A principal finalidade é diminuir o fluxo de dados 
incorretos até o servidor. 
 
 
5. 
 
 
Diversos eventos podem ser utilizados no processo de validação de formulários. Qual 
deles deve ser utilizado para efetuar críticas quando o valor de um campo é alterado? 
 
 
onchange 
 
 
onfocus 
 
 
onclick 
 
 
onblur 
 
 
onsubmit 
 
 
 
Explicação: 
O evento onchange ocorre na mudança do atributo value, não importando a origem desta 
mudança. 
 
16 
 
6. 
 
 
No JavaScript, a caixa de mensagem "alert": 
 
 
 
Exibe apenas uma informação para o usuário. 
 
 
Permite que o usuário insira um nome dentro da caixa de texto. 
 
 
Permite que o usuário insira um nome e/ou um número dentro da caixa de texto. 
 
 
Solicita uma confirmação do usuário, positiva ou negativa. 
 
 
Permite que o usuário insira um número dentro da caixa de texto. 
 
 
 
Explicação: 
Enquanto alert apenas exibe informações, o prompt solicita uma informação no formato 
texto, e o confirm pede uma resposta do tipo OK ou Cancel. 
 
1. 
 
 
Analise as afirmativas sobre Servlets: 
I - A tecnologia Java Servlet utiliza a plataforma Java para criar páginas web dinâmicas 
em aplicações independente de plataforma; 
II - Servlet é uma classe que estende (herda) de HttpServlet; 
III - É baseada na construção de classes e são executadas no cliente (navegador). 
 
 
Somente a I está correta. 
 
 
Somente a II está correta. 
 
 
Somente a III está correta. 
 
 
Somente I e II estão corretas. 
 
 
Todas as afirmativas estão corretas. 
 
 
 
Explicação: 
Os Servlets derivam de HttpServlet, sendo executados no servidor, e permitindo a criação 
de respostas dinâmicas para as chamadas HTTP. 
 
2. 
 
 
Uma das tecnologias utilizadas na criação de aplicativos Web em Java é a de 
Servlets, os quais são utilizados comumente para interfacear a view JSP com as 
camadas de negócio, mas que podem ser utilizados de forma independente. Com 
relação aos Servlets, assinale a opção correta. 
 
 
Processam informações de GET ou POST no mesmo método. 
 
 
Permitem obter os dados enviados por formulários HTML através do método 
getAttribute de request. 
 
 
Podem armazenar dados no escopo de sessão. 
 
 
São convertidos em JSP pelo container. 
 
 
Precisam ser definidos pela anotação @CGIServlet. 
Explicação: 
Os Servlets derivados de HttpServlet são anotados com @WebServlet, e possuem os 
métodos doGet e doPost para tratamento de GET e POST, respectivamente, obtendo os 
dados da requisição com getParameter e podendo utilizar o HttpSession para manusear 
dados da sessão. Não são convertidos em JSP, ocorrendo o contrário na verdade. 
 
3. 
 
 
Considere: 
I. Cobre parte da especificação JEE porém não as tecnologias servlet e JSP e 
nem as tecnologias Realms e JDBC DataSources. 
II. Tem a capacidade de atuar como servidor web, ou pode funcionar integrado 
a um servidor web dedicado como o Apache ou até mesmo o IIS. 
III. É distribuído pela Sun como software proprietário e é referência para as 
tecnologias Java Servlet e JavaServer Pages. 
Quanto ao Tomcat, é correto o que consta em: 
 
 
I, somente. 
 
 
II, somente. 
 
 
I e II, somente. 
 
 
III, somente. 
 
 
I, II e III. 
 
17 
 
4. 
 
 
Para a guarda do estado de uma página em chamadas sucessivas, com uso de tecnologia 
JSF, deve ser utilizado qual escopo em um Managed Bean? 
 
 
Requisição 
 
 
Visão 
 
 
Aplicação 
 
 
Sem escopo 
 
 
Sessão 
 
 
 
Explicação: 
Com o escopo de sessão (Session), os dados são mantidos no servidor enquanto a 
conexão estiver ativa. 
 
5. 
 
 
Preencha as lacunas e, em seguida, assinale a alternativa correta. 
Uma JSP consiste em uma combinação de ___________ e ___________ , que contêm o 
código executável, e a marcação estática, como ____________ ou ____________ . O 
código contido na JSP é identificado e executado pelo ___________ , e a página 
resultante é enviada para o cliente. 
 
 
tags JSP / HTML / Java / XML / servidor 
 
 
tags JSP / HTML / Java / Java Script / compilador 
 
 
tags JSP / scriplets / HTML / XML / servidor 
 
 
tags JSP / scriplets / HTML / XML / compilador 
 
 
tags JSP / HTML / Java / Java Script / servidor 
 
 
 
Explicação: 
Os arquivoJSP compreendem diretivas e trechos Java (Scriptlets) encapsulados em 
documentos XML, XHTML ou HTML, e são trasnformados em Servlet pelo container para a 
subsequente execução no servidor. 
 
6. 
 
 
Pode-se dizer que está INCORRETO sobre as tecnologias Servlet/JSP: 
 
 
 
Toda página JSP é transformada em um Servlet. 
 
 
As páginas JSP são mais voltadas para o Designer, e os Servlets para o 
Programador. 
 
 
Para criar um Servlet é necessário criar uma classe derivada de HttpServlet. 
 
 
JSP pode ser processado sem a utilização de um contêiner, e Servlet necessita de 
um contêiner. 
 
 
Não possuem o método main, pois estão sob controle dos contêineres. 
 
 
 
Explicação: 
Tanto páginas JSP quanto Servlets são executados no contêiner Web, sendo o JSP 
transformado em Servlet por este contêiner antes da execução. 
 
1. 
 
 
Analise as afirmativas sobre Servlets: 
I - A tecnologia Java Servlet utiliza a plataforma Java para criar páginas web dinâmicas 
em aplicações independente de plataforma; 
II - Servlet é uma classe que estende (herda) de HttpServlet; 
III - É baseada na construção de classes e são executadas no cliente (navegador). 
 
 
Somente a I está correta. 
 
 
Todas as afirmativas estão corretas. 
 
 
Somente I e II estão corretas. 
 
 
Somente a III está correta. 
 
 
Somente a II está correta. 
 
 
 
Explicação: 
Os Servlets derivam de HttpServlet, sendo executados no servidor, e permitindo a criação 
de respostas dinâmicas para as chamadas HTTP. 
18 
 
 
2. 
 
 
Uma das tecnologias utilizadas na criação de aplicativos Web em Java é a de 
Servlets, os quais são utilizados comumente para interfacear a view JSP com as 
camadas de negócio, mas que podem ser utilizados de forma independente. Com 
relação aos Servlets, assinale a opção correta. 
 
 
Precisam ser definidos pela anotação @CGIServlet. 
 
 
São convertidos em JSP pelo container. 
 
 
Processam informações de GET ou POST no mesmo método. 
 
 
Permitem obter os dados enviados por formulários HTML através do método 
getAttribute de request. 
 
 
Podem armazenar dados no escopo de sessão. 
Explicação: 
Os Servlets derivados de HttpServlet são anotados com @WebServlet, e possuem os 
métodos doGet e doPost para tratamento de GET e POST, respectivamente, obtendo os 
dados da requisição com getParameter e podendo utilizar o HttpSession para manusear 
dados da sessão. Não são convertidos em JSP, ocorrendo o contrário na verdade. 
 
3. 
 
 
Considere: 
I. Cobre parte da especificação JEE porém não as tecnologias servlet e JSP e 
nem as tecnologias Realms e JDBC DataSources. 
II. Tem a capacidade de atuar como servidor web, ou pode funcionar integrado 
a um servidor web dedicado como o Apache ou até mesmo o IIS. 
III. É distribuído pela Sun como software proprietário e é referência para as 
tecnologias Java Servlet e JavaServer Pages. 
Quanto ao Tomcat, é correto o que consta em: 
 
 
I, II e III. 
 
 
I, somente. 
 
 
I e II, somente. 
 
 
II, somente. 
 
 
III, somente. 
 
 
 
Explicação: 
O servidor Tomcat funciona de forma standalone, ou como módulo de outros servidores, 
dando suporte a Servlets, JSP, Realms, JDBC e outras tecnologias, tratando de um 
software open source distribuído inicialmente pela Sun e atualmente pela Oracle. 
 
4. 
 
 
Para a guarda do estado de uma página em chamadas sucessivas, com uso de 
tecnologia JSF, deve ser utilizado qual escopo em um Managed Bean? 
 
 
Aplicação 
 
 
Visão 
 
 
Requisição 
 
 
Sessão 
 
 
Sem escopo 
 
 
 
Explicação: 
Com o escopo de sessão (Session), os dados são mantidos no servidor enquanto a conexão 
estiver ativa. 
 
5. 
 
 
Preencha as lacunas e, em seguida, assinale a alternativa correta. 
Uma JSP consiste em uma combinação de ___________ e ___________ , que 
contêm o código executável, e a marcação estática, como ____________ ou 
____________ . O código contido na JSP é identificado e executado pelo 
___________ , e a página resultante é enviada para o cliente. 
 
 
tags JSP / scriplets / HTML / XML / servidor 
 
 
tags JSP / HTML / Java / Java Script / compilador 
 
 
tags JSP / HTML / Java / Java Script / servidor 
 
 
tags JSP / scriplets / HTML / XML / compilador 
 
 
tags JSP / HTML / Java / XML / servidor 
 
 
19 
 
6. 
 
 
Pode-se dizer que está INCORRETO sobre as tecnologias Servlet/JSP: 
 
 
 
As páginas JSP são mais voltadas para o Designer, e os Servlets para o 
Programador. 
 
 
JSP pode ser processado sem a utilização de um contêiner, e Servlet necessita de 
um contêiner. 
 
 
Toda página JSP é transformada em um Servlet. 
 
 
Não possuem o método main, pois estão sob controle dos contêineres. 
 
 
Para criar um Servlet é necessário criar uma classe derivada de HttpServlet. 
 
 
 
Explicação: 
Tanto páginas JSP quanto Servlets são executados no contêiner Web, sendo o JSP 
transformado em Servlet por este contêiner antes da execução. 
 
1. 
 
 
O uso de um DAO (Data Access Object) em um código tem a função de: 
 
 
 
Prover uma interface para acesso a um banco de dados ou outro mecanismo de 
persistência. 
 
 
Impedir que uma classe tenha mais de um objeto instanciado. 
 
 
Encapsular o usuário e senha de acesso ao banco de dados relacional. 
 
 
Gerenciar a geração de logs de acesso com API específica. 
 
 
Prover uma camada de segurança para a aplicação. 
 
 
 
Explicação: 
O padrão DAO concentra as chamadas SQL, evitando que este tipo de código se perpetue 
ao longo da aplicação. 
 
 
 
 
 
2. 
 
 
O middleware de acesso ao banco de dados utilizado pelo Java é denominado: 
 
 
 
RMI 
 
 
JDBC 
 
 
JMS 
 
 
JNDI 
 
 
RPC 
 
 
 
Explicação: 
O middleware para acesso a banco de dados do Java é o JDBC (Java Database Conectivity) 
 
 
 
 
 
3. 
 
 
Java Database Connectivity(JDBC) consiste de um conjunto de classes e interfaces (API) 
escritas em Java que fazem o envio de instruções SQL para qualquer banco de dados 
relacional. Dentre as alternativas abaixo, assinale INCORRETA referente a Java Database 
Connectivity(JDBC): 
 
 
O PreparedStatement é um descendente de Statement que aceita 
parametrizações. 
 
 
O executeQuery é um método da classe Connection para execução de uma 
consulta. 
 
 
O método close() da classe Connection fecha uma conexão com o banco de 
dados. 
 
 
Statement trabalha como um executor de comandos SQL. 
 
 
É possivel acessar Banco de Dados que não possuem Driver JDBC próprio através 
da ponte JDBC-ODBC. 
 
 
 
Explicação: 
O método executeQuery pertence à classe Statement. 
 
 
20 
 
4. 
 
 
Baseado na linha de comando abaixo, marque qual deve ser o comando seguinte: 
Statement st = Conexao.getConection().createStatement(); 
 
 
 
ResultSet rs = st.executeQuery("select * from ALUNOS"); 
 
 
ResultSet rs = st.executeUpdate("select * from ALUNOS"); 
 
 
List< Aluno > ls = st.executeQuery("select * from 
ALUNOS"); 
 
 
List ls = st().executeUpdate("select * from ALUNOS"); 
 
 
List< Aluno > ls = st.prepareStatement("select * from 
ALUNOS"); 
 
 
 
Explicação: 
Após criar o executor de SQL (Statement), o próximo passo pode ser uma consulta, 
efetuada a partir do método executeQuery, com o retorno do resultado na forma de um 
ResultSet. 
 
5. 
 
 
A linguagem Java apresenta como middleware padrão para acesso a bancos de 
dados o JDBC, cuja utilização envolve vários passos, indo desde oregistro do Driver 
até a recepção da consulta em ResultSets. Neste processo podem ocorrer duas 
exceções principais, no que se refere ao uso do JDBC, as quais são: 
 
 
ServletException e ArithmeticException 
 
 
SQLException e ClassNotFoundException 
 
 
ClassNotFoundException e ArithmeticException 
 
 
ClassNotFoundException e ServletException 
 
 
SQLException e ServletException 
 
 
 
Explicação: 
Pode ocorrer SQLException nas operações sobre o banco, e ClassNotFoundException ao 
instanciar o Driver. 
 
 
 
 
 
6. 
 
 
Supondo que você utilize um Managed Bean que funcione como DAO, através do nome 
"clienteDAO", e que o mesmo tenha um método "findAll" sem parâmetros para o retorno 
de toda a base de clientes, como seria definido um componente DataTable alimentado pelo 
mesmo? 
 
 
< h:dataTable value="#{clienteDAO.findAll()}" var="c" > 
 
 
< h:dataTable value="#{clienteDAO.obterTodos()}" var="c" 
> 
 
 
< h:dataTable value="#{produtoDAO.obterTodos()}" var="p" 
> 
 
 
< h:dataTable var="#{produtoDAO.findAll()}" value="p" > 
 
 
< h:dataTable var="#{clienteDAO.findAll()}" value="c" > 
 
 
 
Explicação: 
Na sintaxe do DataTable, o atributo value deverá receber a lista de origem, fornecida a 
partir de clienteDAO.findAll, e o atributo var nomeia a variável que percorre o conjunto, 
assumindo os valores de cada entidade sequencialmente. 
 
1. 
 
 
O uso de um DAO (Data Access Object) em um código tem a função de: 
 
 
 
Prover uma interface para acesso a um banco de dados ou outro mecanismo de 
persistência. 
 
 
Impedir que uma classe tenha mais de um objeto instanciado. 
 
 
Prover uma camada de segurança para a aplicação. 
 
 
Encapsular o usuário e senha de acesso ao banco de dados relacional. 
 
 
Gerenciar a geração de logs de acesso com API específica. 
 
 
 
Explicação: 
O padrão DAO concentra as chamadas SQL, evitando que este tipo de código se perpetue 
ao longo da aplicação. 
21 
 
 
2. 
 
 
O middleware de acesso ao banco de dados utilizado pelo Java é denominado: 
 
 
 
JDBC 
 
 
RPC 
 
 
JMS 
 
 
RMI 
 
 
JNDI 
 
 
 
Explicação: 
O middleware para acesso a banco de dados do Java é o JDBC (Java Database Conectivity) 
 
 
 
 
 
3. 
 
 
Java Database Connectivity(JDBC) consiste de um conjunto de classes e interfaces (API) 
escritas em Java que fazem o envio de instruções SQL para qualquer banco de dados 
relacional. Dentre as alternativas abaixo, assinale INCORRETA referente a Java Database 
Connectivity(JDBC): 
 
 
Statement trabalha como um executor de comandos SQL. 
 
 
É possivel acessar Banco de Dados que não possuem Driver JDBC próprio através 
da ponte JDBC-ODBC. 
 
 
O PreparedStatement é um descendente de Statement que aceita 
parametrizações. 
 
 
O executeQuery é um método da classe Connection para execução de uma 
consulta. 
 
 
O método close() da classe Connection fecha uma conexão com o banco de 
dados. 
 
 
 
Explicação: 
O método executeQuery pertence à classe Statement. 
 
 
 
 
4. 
 
 
Baseado na linha de comando abaixo, marque qual deve ser o comando seguinte: 
Statement st = Conexao.getConection().createStatement(); 
 
 
 
ResultSet rs = st.executeQuery("select * from ALUNOS"); 
 
 
List< Aluno > ls = st.executeQuery("select * from 
ALUNOS"); 
 
 
List ls = st().executeUpdate("select * from ALUNOS"); 
 
 
List< Aluno > ls = st.prepareStatement("select * from 
ALUNOS"); 
 
 
ResultSet rs = st.executeUpdate("select * from ALUNOS"); 
 
 
 
Explicação: 
Após criar o executor de SQL (Statement), o próximo passo pode ser uma consulta, 
efetuada a partir do método executeQuery, com o retorno do resultado na forma de um 
ResultSet. 
 
5. 
 
 
A linguagem Java apresenta como middleware padrão para acesso a bancos de 
dados o JDBC, cuja utilização envolve vários passos, indo desde o registro do Driver 
até a recepção da consulta em ResultSets. Neste processo podem ocorrer duas 
exceções principais, no que se refere ao uso do JDBC, as quais são: 
 
 
SQLException e ServletException 
 
 
SQLException e ClassNotFoundException 
 
 
ClassNotFoundException e ArithmeticException 
 
 
ServletException e ArithmeticException 
 
 
ClassNotFoundException e ServletException 
 
 
 
Explicação: 
Pode ocorrer SQLException nas operações sobre o banco, e ClassNotFoundException ao 
instanciar o Driver. 
 
22 
 
 
6. 
 
 
Supondo que você utilize um Managed Bean que funcione como DAO, através do nome 
"clienteDAO", e que o mesmo tenha um método "findAll" sem parâmetros para o retorno 
de toda a base de clientes, como seria definido um componente DataTable alimentado 
pelo mesmo? 
 
 
< h:dataTable value="#{clienteDAO.findAll()}" var="c" > 
 
 
< h:dataTable var="#{produtoDAO.findAll()}" value="p" > 
 
 
< h:dataTable value="#{produtoDAO.obterTodos()}" var="p" 
> 
 
 
< h:dataTable value="#{clienteDAO.obterTodos()}" var="c" 
> 
 
 
< h:dataTable var="#{clienteDAO.findAll()}" value="c" > 
 
 
 
Explicação: 
Na sintaxe do DataTable, o atributo value deverá receber a lista de origem, fornecida a 
partir de clienteDAO.findAll, e o atributo var nomeia a variável que percorre o conjunto, 
assumindo os valores de cada entidade sequencialmente. 
 
1. 
 
 
Qual componente do JSF assume o papel de Front Control? 
 
 
 
Response 
 
 
Request 
 
 
Facelet 
 
 
FacesServlet 
 
 
Managed Bean 
 
 
 
Explicação: 
Segundo o mapeamento feito no web.xml, toda chamada a páginas JSF será direcionada 
para o FacesServlet, fazendo com que o mesmo assuma o papel de Front Control na 
arquitetura do JSF. 
 
 
 
 
2. 
 
 
Em uma arquitetura MVC com uso de JSF, qual seria o único tipo de componente que 
poderia instanciar um objeto do padrão DAO? 
 
 
Controlador 
 
 
Entidade 
 
 
Faces Servlet 
 
 
Facelet 
 
 
Managed Bean 
 
 
 
Explicação: 
Apenas os controladores, presentes na camada Control, podem instanciar elementos do 
tipo DAO, pertencentes à camada Model, e solicitar que estes últimos efetuem operações 
sobre o banco de dados. As entidades são o elemento de transporte, transitando entre as 
camadas, e os componentes JSF pertencem à camada View. 
 
3. 
 
 
A arquitetura MOM (Message Oriented Middleware) se torna muito importante no 
mundo corporativo ao permitir que sejam sequenciados diversos pedidos para 
atendimento de forma assíncrona, pois as solicitações são enviadas para filas de 
mensagens com a finalidade de serem processadas posteriormente, sem bloquear o 
cliente. Esta é um típico exemplo de qual padrão arquitetural? 
 
 
Event-Driven 
 
 
Broker 
 
 
Blackboard 
 
 
MVC 
 
 
PAC 
 
 
 
Explicação: 
Os sistemas de mensageria são baseados em Middleware Orientado a Mensagens (MOM), 
os quais são assíncronos e guiados por eventos, segundo o padrão Event-Driven. 
 
23 
 
 
4. 
 
 
Na arquitetura MVC, os componentes JDBC podem ser utilizados em que camada(s)? 
 
 
 
Control e Model 
 
 
View 
 
 
Control 
 
 
Model 
 
 
Model, Control e View 
 
 
 
Explicação: 
Como o JDBC está relacionado à persistência em banco de dados, ele deve ser utilizado 
exclusivamente na Model. 
 
 
 
 
 
5. 
 
 
Qual a fase do ciclo de vida do JSF onde a árvore de componentes é montada ao nível do 
servidor? 
 
 
Render Response 
 
 
Apply Requests 
 
 
Process Validations 
 
 
Update Model ValuesRestore View 
 
 
 
Explicação: 
A fase inicial do ciclo de vida é a Restore View, onde é recebida a requisição HTTP e 
montada a árvore de objetos em memória. 
 
 
 
 
 
6. 
 
 
Com relação aos conceitos de arquitetura de aplicações, é correto afirmar que o MVC é um 
padrão 
 
 
de objeto que executa uma operação quando ele recebe uma solicitação 
(mensagem) correspondente de um outro objeto. 
 
 
que garante que uma lógica de negócios possa ser acessada e visualizada por 
uma única interface. 
 
 
de arquitetura de aplicações que visa separar a "lógica da aplicação", a "interface 
do usuário" e a "persistência de dados". 
 
 
de desenvolvimento cuja finalidade é definir uma interface na mesma camada da 
"lógica da aplicação". 
 
 
de operação dirigida para uma classe e não para um objeto individual. 
 
 
 
Explicação: 
A arquitetura MVC divide o aplicativo em 3 camadas: Model (Persistência), Control (Regras 
de Negócio) e View (Interfaces). Não pode ocorrer contato entre a View e a Model. 
 
1. 
 
 
Qual componente do JSF assume o papel de Front Control? 
 
 
 
Managed Bean 
 
 
Request 
 
 
Response 
 
 
FacesServlet 
 
 
Facelet 
 
 
 
Explicação: 
Segundo o mapeamento feito no web.xml, toda chamada a páginas JSF será direcionada 
para o FacesServlet, fazendo com que o mesmo assuma o papel de Front Control na 
arquitetura do JSF. 
 
24 
 
 
2. 
 
 
Em uma arquitetura MVC com uso de JSF, qual seria o único tipo de componente que 
poderia instanciar um objeto do padrão DAO? 
 
 
Entidade 
 
 
Controlador 
 
 
Facelet 
 
 
Managed Bean 
 
 
Faces Servlet 
 
 
 
Explicação: 
Apenas os controladores, presentes na camada Control, podem instanciar elementos do 
tipo DAO, pertencentes à camada Model, e solicitar que estes últimos efetuem operações 
sobre o banco de dados. As entidades são o elemento de transporte, transitando entre as 
camadas, e os componentes JSF pertencem à camada View. 
 
 
3. 
 
 
A arquitetura MOM (Message Oriented Middleware) se torna muito importante no mundo 
corporativo ao permitir que sejam sequenciados diversos pedidos para atendimento de 
forma assíncrona, pois as solicitações são enviadas para filas de mensagens com a 
finalidade de serem processadas posteriormente, sem bloquear o cliente. Esta é um típico 
exemplo de qual padrão arquitetural? 
 
 
MVC 
 
 
PAC 
 
 
Blackboard 
 
 
Broker 
 
 
Event-Driven 
 
 
 
Explicação: 
Os sistemas de mensageria são baseados em Middleware Orientado a Mensagens (MOM), 
os quais são assíncronos e guiados por eventos, segundo o padrão Event-Driven. 
 
4. 
 
 
Na arquitetura MVC, os componentes JDBC podem ser utilizados em que camada(s)? 
 
 
 
View 
 
 
Control e Model 
 
 
Model 
 
 
Model, Control e View 
 
 
Control 
 
 
 
Explicação: 
Como o JDBC está relacionado à persistência em banco de dados, ele deve ser utilizado 
exclusivamente na Model. 
 
 
 
 
 
5. 
 
 
Qual a fase do ciclo de vida do JSF onde a árvore de componentes é montada ao nível do 
servidor? 
 
 
Process Validations 
 
 
Update Model Values 
 
 
Render Response 
 
 
Restore View 
 
 
Apply Requests 
 
 
 
Explicação: 
A fase inicial do ciclo de vida é a Restore View, onde é recebida a requisição HTTP e 
montada a árvore de objetos em memória. 
 
25 
 
 
6. 
 
 
Com relação aos conceitos de arquitetura de aplicações, é correto afirmar que o MVC é um 
padrão 
 
 
de operação dirigida para uma classe e não para um objeto individual. 
 
 
de arquitetura de aplicações que visa separar a "lógica da aplicação", a "interface 
do usuário" e a "persistência de dados". 
 
 
de objeto que executa uma operação quando ele recebe uma solicitação 
(mensagem) correspondente de um outro objeto. 
 
 
de desenvolvimento cuja finalidade é definir uma interface na mesma camada da 
"lógica da aplicação". 
 
 
que garante que uma lógica de negócios possa ser acessada e visualizada por 
uma única interface. 
 
 
 
Explicação: 
A arquitetura MVC divide o aplicativo em 3 camadas: Model (Persistência), Control (Regras 
de Negócio) e View (Interfaces). Não pode ocorrer contato entre a View e a Model. 
 
1. 
 
 
Os dois tipos de arquiteturas de envio e recepção que o JMS pode visualizar são: 
 
 
 
Síncrona e Assíncrona 
 
 
Get e Post 
 
 
Filas e Assinaturas 
 
 
Assinaturas e Tópicos 
 
 
Filas e Tópicos 
 
 
 
Explicação: 
As estruturas de mensagerias, ambas assíncronas, são Filas, com vários emissores e um 
consumidor sequencial, e Tópicos, com vários publicadores e vários assinantes. 
 
 
 
 
 
2. 
 
 
O tipo de bean utilizado para tratamento de regras de negócio síncronas, onde ocorre a 
necessidade de guardar informações entre chamadas sucessivas seria: 
 
 
Message Driven Bean 
 
 
Stateless Session Bean 
 
 
Entity Bean 
 
 
Stateful Session Bean 
 
 
Async Queued Bean 
 
 
 
Explicação: 
Os componentes EJB do tipo Session são voltados para o tratamento de regras de negócio 
de forma síncrona, sendo o Stateless sem a guarda de estado e o Stateful com a guarda 
de estado. 
 
 
 
 
 
3. 
 
 
Arquivo de configuração necessário para a definição das conexões no JPA: 
 
 
 
context.xml 
 
 
manifest 
 
 
web.xml 
 
 
readme.txt 
 
 
persistence.xml 
 
 
 
Explicação: 
O arquivo persistence.xml guarda as configurações JDBC e definições de unidades de 
persistência. 
26 
 
 
4. 
 
 
Entre os diferente tipos de EJBs, os MDBs são responsáveis pelo comportamento 
assíncrono baseado em mensagerias. Assinale a alternativa correta com relação aos 
MDBs. 
 
 
Necessitam de interfaces @Local e @Remote. 
 
 
Apresentam um único método para tratamento de mensagens denominado 
onMessage. 
 
 
Eles podem guardar informações de estado, como os Statefull Session Beans. 
 
 
São definidos pela anotação @Message. 
 
 
Precisam implementar a interface SessionListener. 
 
 
 
Explicação: 
Os MDBs são componentes EJB para tratamento assícrono de mensagens, através do 
método onMessage, lidando diretamente com as mensagerias via JMS, sem interfaces 
remotas ou locais, e sem a possibilidade de guardar estado. 
 
 
5. 
 
 
Os EJBs do tipo Session Bean podem ser divididos em três tipos, sendo que um deles 
permite a ocorrência de apenas uma instância por máquina virtual. Qual é este tipo? 
 
 
Stateful 
 
 
Singleton 
 
 
Entity 
 
 
Message Driven 
 
 
Stateless 
 
 
 
Explicação: 
Os EJBs do tipo Sngleton seguem o padrão de desenvolvimento de mesmo nome, 
ocorrendo apenas uma vez por JVM, e mantendo uma única referência, mesmo em 
ambientes clusterizados. 
 
 
6. 
 
 
Complete as lacunas no trecho de código-fonte abaixo com os termos corretos: 
__________ emf = 
Persistence.createEntityManagerFactory("PU"); 
__________ em = emf.createEntityManager(); 
em.getTransaction().begin(); 
c = new Curso(3, "EE"); 
em.__________(c); 
em.getTransaction().commit(); 
 
 
 
EntityFactory; EntityManager; save 
 
 
Database; Entity; put 
 
 
EntityManagerFactory; EntityManager; persist 
 
 
EntityManager; Command; insert 
 
 
Connection; Statement; execute 
 
 
 
Explicação: 
Um elemento essencial no JPA é a classe EntityManager, responsável pelo manuseio das 
diversas entidades. Objetos desta classe são gerados a partir do EntityManagerFactory,e o 
método persist viabiliza a gravação de uma entidade no banco de dados. 
 
1. 
 
 
Os dois tipos de arquiteturas de envio e recepção que o JMS pode visualizar são: 
 
 
 
Get e Post 
 
 
Assinaturas e Tópicos 
 
 
Filas e Tópicos 
 
 
Filas e Assinaturas 
 
 
Síncrona e Assíncrona 
Explicação: 
As estruturas de mensagerias, ambas assíncronas, são Filas, com vários emissores e um 
consumidor sequencial, e Tópicos, com vários publicadores e vários assinantes. 
 
27 
 
2. 
 
 
O tipo de bean utilizado para tratamento de regras de negócio síncronas, onde ocorre a 
necessidade de guardar informações entre chamadas sucessivas seria: 
 
 
Stateless Session Bean 
 
 
Message Driven Bean 
 
 
Async Queued Bean 
 
 
Entity Bean 
 
 
Stateful Session Bean 
 
 
 
Explicação: 
Os componentes EJB do tipo Session são voltados para o tratamento de regras de negócio 
de forma síncrona, sendo o Stateless sem a guarda de estado e o Stateful com a guarda 
de estado. 
 
 
 
 
 
3. 
 
 
Arquivo de configuração necessário para a definição das conexões no JPA: 
 
 
 
web.xml 
 
 
persistence.xml 
 
 
readme.txt 
 
 
manifest 
 
 
context.xml 
 
 
 
Explicação: 
O arquivo persistence.xml guarda as configurações JDBC e definições de unidades de 
persistência. 
 
4. 
 
 
Entre os diferente tipos de EJBs, os MDBs são responsáveis pelo comportamento 
assíncrono baseado em mensagerias. Assinale a alternativa correta com relação aos 
MDBs. 
 
 
Precisam implementar a interface SessionListener. 
 
 
Apresentam um único método para tratamento de mensagens denominado 
onMessage. 
 
 
Necessitam de interfaces @Local e @Remote. 
 
 
Eles podem guardar informações de estado, como os Statefull Session Beans. 
 
 
São definidos pela anotação @Message. 
 
 
 
Explicação: 
Os MDBs são componentes EJB para tratamento assícrono de mensagens, através do 
método onMessage, lidando diretamente com as mensagerias via JMS, sem interfaces 
remotas ou locais, e sem a possibilidade de guardar estado. 
 
5. 
 
 
Os EJBs do tipo Session Bean podem ser divididos em três tipos, sendo que um deles 
permite a ocorrência de apenas uma instância por máquina virtual. Qual é este tipo? 
 
 
Message Driven 
 
 
Singleton 
 
 
Stateless 
 
 
Stateful 
 
 
Entity 
 
 
 
Explicação: 
Os EJBs do tipo Sngleton seguem o padrão de desenvolvimento de mesmo nome, 
ocorrendo apenas uma vez por JVM, e mantendo uma única referência, mesmo em 
ambientes clusterizados. 
 
 
 
28 
 
6. 
 
 
Complete as lacunas no trecho de código-fonte abaixo com os termos corretos: 
__________ emf = 
Persistence.createEntityManagerFactory("PU"); 
__________ em = emf.createEntityManager(); 
em.getTransaction().begin(); 
c = new Curso(3, "EE"); 
em.__________(c); 
em.getTransaction().commit(); 
 
 
 
EntityManager; Command; insert 
 
 
EntityManagerFactory; EntityManager; persist 
 
 
Connection; Statement; execute 
 
 
Database; Entity; put 
 
 
EntityFactory; EntityManager; save 
 
Explicação: 
Um elemento essencial no JPA é a classe EntityManager, responsável pelo manuseio das 
diversas entidades. Objetos desta classe são gerados a partir do EntityManagerFactory, e o 
método persist viabiliza a gravação de uma entidade no banco de dados. 
 
1. 
 
 
Qual anotação deve ser utilizada para efetuar o acesso a um Managed Bean a partir de 
outro? 
 
 
ApplicationScoped 
 
 
Inject 
 
 
EJB 
 
 
SessionScoped 
 
 
Named 
Explicação: 
Enquanto @Named permite definir o nome do Managed Bean, com @Inject podemos 
acessá-lo através do nome definido anteriormente. 
 
 
2. 
 
 
Ao solicitar a criação de entidades JPA a partir do banco de dados, no NetBeans, é 
solicitado que se defina um pool de conexões para o acesso a este banco. Qual tecnologia 
Java é utilizada para o registro e localização deste pool? 
 
 
JMS 
 
 
EJB 
 
 
JDBC 
 
 
JNDI 
 
 
SWING 
 
 
 
Explicação: 
O serviço de nomes e diretórios do Java é denominado JNDI, e serve para o registro e 
localização de objetos como pools de conexão e filas de mensagerias, entre diversos 
outros. 
 
3. 
 
 
No ambiente JEE, a anotação PersistenceContext é utilizada para: 
 
 
 
Acessar um Managed Bean a partir de outro no mesmo contexto. 
 
 
Definir um EJB do tipo Stateless. 
 
 
Acessar um EJB a partir de um Managed Bean. 
 
 
Instanciar um EntityManager a partir da unidade de persistência. 
 
 
Efetuar a conexão com as filas de uma mensageria a patir do MDB. 
 
 
 
Explicação: 
O uso da anotação PersistenceContext permite instanciar um EntityManager a partir do 
nome da unidade de persistência, conforme as definições efetuadas no arquivo 
persistence.xml. 
 
 
 
 
29 
 
 
4. 
 
 
O ferramental do NetBeans permite gerar de forma automática os EJBs responsáveis por 
invocar as diversas operações a serem efetuadas no banco a partir de entidades JPA. Ao 
fazer isto, ele segue um padrão de desenvolvimento denominado: 
 
 
Adapter 
 
 
Singleton 
 
 
Intercept Filter 
 
 
Session Facade 
 
 
Front Control 
 
 
 
Explicação: 
É utilizado o padrão Session Facade, onde os Stateless Session Beans servem de fachada 
para as operações de banco intermediadas pelo JPA. 
 
 
5. 
 
 
Assinale a alternativa correta. 
 
 
 
Em termos da arquitetura MVC, os EJBs pertencem à camada View. 
 
 
As transações nos EJBs são controladas através do JTA (Java Transaction API). 
 
 
Na arquitetura MVC, as entidades JPA devem acessar os Managed Beans com o 
uso de @Inject. 
 
 
Os Managed Beans podem instanciar elementos do tipo EntityManager sem 
quebrar as regras do modelo MVC. 
 
 
Uma anotação @Id seria utilizada para acessar um EJB específico do pool de 
EJBs. 
 
 
 
Explicação: 
Na arquitetura MVC, JSF estaria na View, EJB na Control e JPA na Model. Nenhum 
componente da camada View deve acessar a camada Model sem passar pela Control, e 
nenhuma camada conhece os componentes de uma camada superior, ou seja, a Model não 
conhece a Control e a Control não conhece a View. A anotação @Id serve para identificr o 
campo chave de uma entidade JPA, e não é possível determinar o EJB que será acessado 
no pool. 
 
 
6. 
 
 
Em uma arquitetura MVC com uso de JSF, JPA e EJB, em que camadas estariam, 
respectivamente, os componentes de cada uma destas tecnologias? 
 
 
Model, Control e View 
 
 
Control, Model e View 
 
 
View, Model e Control 
 
 
Model, View e Control 
 
 
View, Control e Model 
 
 
 
Explicação: 
Os componentes JSF irão compor a interface na camada View, enquanto o acesso ao banco 
será feito via JPA na camada Model, e as regras de negócio serão implementadas pelos 
EJBs na camada Control. 
 
1. 
 
 
Qual anotação deve ser utilizada para efetuar o acesso a um Managed Bean a partir de 
outro? 
 
 
Named 
 
 
SessionScoped 
 
 
ApplicationScoped 
 
 
EJB 
 
 
Inject 
 
 
 
Explicação: 
Enquanto @Named permite definir o nome do Managed Bean, com @Inject podemos 
acessá-lo através do nome definido anteriormente. 
 
 
 
30 
 
 
 
2. 
 
 
Ao solicitar a criação de entidades JPA a partir do banco de dados, no NetBeans, é 
solicitado que se defina um pool de conexões para o acesso a este banco. Qual tecnologia 
Java é utilizada para o registro e localização deste pool?JNDI 
 
 
SWING 
 
 
JDBC 
 
 
EJB 
 
 
JMS 
 
 
 
Explicação: 
O serviço de nomes e diretórios do Java é denominado JNDI, e serve para o registro e 
localização de objetos como pools de conexão e filas de mensagerias, entre diversos 
outros. 
 
 
3. 
 
 
No ambiente JEE, a anotação PersistenceContext é utilizada para: 
 
 
 
Definir um EJB do tipo Stateless. 
 
 
Acessar um EJB a partir de um Managed Bean. 
 
 
Efetuar a conexão com as filas de uma mensageria a patir do MDB. 
 
 
Acessar um Managed Bean a partir de outro no mesmo contexto. 
 
 
Instanciar um EntityManager a partir da unidade de persistência. 
 
 
 
Explicação: 
O uso da anotação PersistenceContext permite instanciar um EntityManager a partir do 
nome da unidade de persistência, conforme as definições efetuadas no arquivo 
persistence.xml. 
 
 
4. 
 
 
O ferramental do NetBeans permite gerar de forma automática os EJBs responsáveis por 
invocar as diversas operações a serem efetuadas no banco a partir de entidades JPA. Ao 
fazer isto, ele segue um padrão de desenvolvimento denominado: 
 
 
Adapter 
 
 
Session Facade 
 
 
Front Control 
 
 
Intercept Filter 
 
 
Singleton 
 
Explicação: 
É utilizado o padrão Session Facade, onde os Stateless Session Beans servem de fachada 
para as operações de banco intermediadas pelo JPA. 
 
 
5. 
 
 
Assinale a alternativa correta. 
 
 
 
As transações nos EJBs são controladas através do JTA (Java Transaction API). 
 
 
Em termos da arquitetura MVC, os EJBs pertencem à camada View. 
 
 
Uma anotação @Id seria utilizada para acessar um EJB específico do pool de 
EJBs. 
 
 
Na arquitetura MVC, as entidades JPA devem acessar os Managed Beans com o 
uso de @Inject. 
 
 
Os Managed Beans podem instanciar elementos do tipo EntityManager sem 
quebrar as regras do modelo MVC. 
 
 
Explicação: 
Na arquitetura MVC, JSF estaria na View, EJB na Control e JPA na Model. Nenhum 
componente da camada View deve acessar a camada Model sem passar pela Control, e 
nenhuma camada conhece os componentes de uma camada superior, ou seja, a Model não 
conhece a Control e a Control não conhece a View. A anotação @Id serve para identificr o 
campo chave de uma entidade JPA, e não é possível determinar o EJB que será acessado 
no pool.

Mais conteúdos dessa disciplina