Buscar

DESENVOLVIMENTO DE SOFTWARE

Prévia do material em texto

DESENVOLVIMENTO DE SOFTWARE
	1a Questão
	
	
	
	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
	
	12,5
	 
	4
	
	96
	
	4,17
	Respondido em 19/08/2019 15:27:23
	
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
 
	
	
	 
	
	 2a Questão
	
	
	
	
	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 >= a*2;b--)
	
	for(; a <= b;)
	
	for(a=1,b=5; a < b ;a++,b--)
	Respondido em 19/08/2019 15:28:05
	
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 ==.
	
	
	 
	
	 3a Questão
	
	
	
	
	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 false
	
	true, false e true
	 
	true, false e false
	
	true, true e false
	
	false, true e true
	Respondido em 19/08/2019 15:30:59
	
Explicação:
T && F -> F,  F || T -> T,  T && !T -> T && F -> F
	
	
	 
	
	 4a Questão
	
	
	
	
	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;
 
		
	 
	52
	
	33
	
	102
	
	66
	
	50
	Respondido em 19/08/2019 15:33:55
	
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.
	
	
	 
	
	 5a Questão
	
	
	
	
	Indique a opção que apresenta apenas operadores relacionais.
		
	
	Operadores >, <, = e !
	 
	Operadores &, |, ^ e !
	
	Operadores +, -, < e ^
	 
	Operadores >=, <, == e !=
	
	Operadores +, -, * e /
	Respondido em 19/08/2019 15:34:10
	
Explicação:
Operadores relacionais analisam relações entre números, podendo ser >, <, >=, <=, == ou !=.
	
	
	 
	
	 6a Questão
	
	
	
	
	__________________ é 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 Drunk
	 
	Garbage Collector
	 
	Java Clean
	
	Java Collector
	Respondido em 19/08/2019 15:34:54
	
Explicação:
O coletor de lixo, ou Garbage  Collector, elimina da memória os objetos que não podem mais ser referenciados.
	1a Questão
	
	
	
	Qual a função do encapsulamento?
		
	
	Fazer a transferência de dados segura entre usuário e servidor.
	
	Cria novos objetos.
	
	Fazer uma conexão entre usuário e servidor.
	
	Instanciar um objeto dentro de classes privadas.
	 
	Impedir o acesso direto a um atributo.
	Respondido em 20/08/2019 21:58:17
	
Explicação:
Tradicionalmente o encapsulamento é feito com o uso de getters e setters públicos para o controle do acesso aos atributos privados.
	
	
	 
	
	 2a Questão
	
	
	
	
	Podemos dizer que é um modelo para criação de objetos.
		
	 
	Polimorfismo
	
	Conexão
	
	Herança
	 
	Classe
	
	Objeto
	Respondido em 20/08/2019 21:58:32
	
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.
	
	
	 
	
	 3a Questão
	
	
	
	
	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.
	Respondido em 20/08/2019 21:59:08
	
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.
	
	
	 
	
	 4a Questão
	
	
	
	
	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?
		
	 
	Sobrescrita
	
	Agregação
	
	Encapsulamento
	
	Herança
	
	Sobrecarga
	Respondido em 20/08/2019 21:59:41
	
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.
	
	
	 
	
	 5a Questão
	
	
	
	
	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?
		
	
	implements
	 
	this
	 
	super
	
	new
	
	extends
	Respondido em 20/08/2019 22:00:01
	
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.
	
	
	 
	
	 6a Questão
	
	
	
	
	Quando falamos das ações que um objeto pode realizar estamos nos referindo a:
		
	
	Agrupamentos
	
	Herança
	
	Atributos
	
	Nível de Acesso
	 
	Métodos
	Respondido em 20/08/2019 22:00:46
	
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.
	1a Questão
	
	
	
	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.
	
	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.
	
	Trabalha com metadados anexados aos elementos de programação, visando o reconhecimento por ferramentas externas.
	 
	Permite a definição de comportamentos, como filas e pilhas, os quais serão complementados com a escolha da(s) classe(s) de interesse.
	Respondido em 21/08/2019 14:28:00
	
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.
	
	
	 
	
	 2a Questão
	
	
	
	
	Acerca das anotações, é correto afirmar:
		
	
	Não permitem a definição de valores default, e qualquer parâmetro definido precisa ser preenchido durante a utilização.
	
	Sãointerfaces comuns, que devem ser implementadas pelas classes com o uso de implements.
	 
	São metadados anexados aos elementos de programação que podem ser recuperados através de reflexividade computacional.
	
	É apenas um tipo de comentário que surgiu na versão 5 do Java.
	 
	São classes que servem para guardar lembretes durante o processo de programação.
	Respondido em 21/08/2019 14:28:33
	
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.
	
	
	 
	
	 3a Questão
	
	
	
	
	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.
	 
	As exceções em Java são fixas e não é possível definir novas exceções.
	
	Uma exceção é sempre um objeto do tipo Throwable.
	
	A cláusula catch nem sempre é executada.
	
	A cláusula try sempre é executada, mas a sequencia completa pode ser interrompida por uma exceção.
	Respondido em 21/08/2019 14:30:44
	
Explicação:
No Java é possível definir exceções de forma muito simples, bastando derivar da classe Exception ou de suas descendentes.
	
	
	 
	
	 4a Questão
	
	
	
	
	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? 
		
	
	try
	
	throws
	
	catch
	 
	finally
	
	throw
	Respondido em 21/08/2019 14:32:00
	
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.
	
	
	 
	
	 5a Questão
	
	
	
	
	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.get(3).put(12,"XPTO");
	 
	estruturaX.get(2).get(12).add("XPTO");
	 
	estruturaX.add(2,12,"XPTO");
	
	estruturaX.put(3,12,"XPTO");
	
	estruturaX.get(2,12).add("XPTO");
	Respondido em 21/08/2019 14:32:57
	
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
	
	
	 
	
	 6a Questão
	
	
	
	
	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?
		
	
	Collection
	
	ArrayList
	 
	HashMap
	
	List
	
	Vector
	Respondido em 21/08/2019 14:34:06
	
Explicação:
O uso de HashMap viabiliza a construção de coleções de pares chave-valor, onde as chaves não permitem duplicidade.
	
	
	1a Questão
	
	
	
	Qual componente gráfico deve ser utilizado para representar opções mutuamente exclusivas em uma janela de cadastro?
		
	 
	JLabel
	 
	JRadioButton
	
	JButton
	
	JTree
	
	JCheckBox
	Respondido em 22/08/2019 13:33:24
	
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.
	
	
	 
	
	 2a Questão
	
	
	
	
	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?
		
	 
	ChangeListener
	 
	ActionListener
	
	FocusListener
	
	KeyListener
	
	ItemListener
	Respondido em 22/08/2019 13:33:45
	
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.
	
	
	 
	
	 3a Questão
	
	
	
	
	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.EXCLAMATION_MESSAGE
	 
	JOptionPane.QUESTION_MESSAGE
	
	JOptionPane.ERROR_MESSAGE
	
	JOptionPane.WARNING_MESSAGE
	
	JOptionPane.INFORMATION_MESSAGE
	Respondido em 22/08/2019 13:33:58
	
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.
	
	
	 
	
	 4a Questão
	
	
	
	
	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?
		
	 
	MouseMotionListener
	
	FocusListener
	
	TextListener
	
	MouseListener
	 
	ActionListener
	Respondido em 22/08/2019 13:34:06
	
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.
	
	
	 
	
	 5a Questão
	
	
	
	
	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 jdbc
	
	awt e swt
	 
	awt e swing
	
	swt e swing
	
	jdbc e swing
	Respondido em 22/08/2019 13:34:14
	
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.
	
	
	 
	
	 6a Questão
	
	
	
	
	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?
		
	 
	GridLayout
	
	FlowLayout
	
	GridBagLayout
	 
	BorderLayout
	
	BoxLayout
	Respondido em 22/08/2019 13:34:20
	
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.
	1a Questão
	
	
	
	As tags responsáveis por quebra de linha, criaçãode parágrafo e criação de formulários são, respectivamente:
		
	 
	< p > < br > < form >
	 
	< br > < p > < form >
	
	< form > < br > < h1 >
	
	< br > < p > < h1 >
	
	< h1 > < p > < br >
	Respondido em 23/08/2019 19:06:51
	
Explicação:
As tags seriam br (break), p (paragraph) e form. A tag h1 define uma fonte de título grande.
	
	
	 
	
	 2a Questão
	
	
	
	
	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}
	Respondido em 23/08/2019 19:06:54
	
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}.
	
	
	 
	
	 3a Questão
	
	
	
	
	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
	 
	radio
	
	hidden
	
	sumbit
	
	checkbox
	Respondido em 23/08/2019 19:06:56
	
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.
	
	
	 
	
	 4a Questão
	
	
	
	
	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.
	 
	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.
	
	Permite se utilizar de recursos locais, entre eles o acesso a bancos de dados e arquivos presentes no computador cliente.
	
	As críticas relativas à formatação são realizadas com sucessivas chamadas ao servidor.
	
	Quando associada ao evento de envio do formulário necessita de uma função sem retorno de valor.
	Respondido em 23/08/2019 19:06:59
	
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.
	
	
	 
	
	 5a Questão
	
	
	
	
	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?
		
	
	onclick
	
	onfocus
	 
	onblur
	
	onsubmit
	 
	onchange
	Respondido em 23/08/2019 19:07:08
	
Explicação:
O evento onchange ocorre na mudança do atributo value, não importando a origem desta mudança.
	
	
	 
	
	 6a Questão
	
	
	
	
	No JavaScript, a caixa de mensagem "alert":
		
	
	Permite que o usuário insira 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 nome 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.
	Respondido em 23/08/2019 19:07:12
	
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 II está correta.
	
	
	Somente I e II estão corretas.
	
	
	Somente a III está correta.
	
	
	Todas as afirmativas estão corretas.
	
	
	Somente a I 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.
	
	
	
	 
		
	
		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.
	
	
	
	São convertidos em JSP pelo container.
	
	
	Processam informações de GET ou POST no mesmo método.
	
	
	Precisam ser definidos pela anotação @CGIServlet.
	
	
	Podem armazenar dados no escopo de sessão.
	
	
	Permitem obter os dados enviados por formulários HTML através do método getAttribute de request.
	
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:
	
	
	
	II, somente.
	
	
	I, II e III.
	
	
	I e II, somente.
	
	
	I, 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?
	
	
	
	Visão
	
	
	Sem escopo
	
	
	Requisição
	
	
	Aplicação
	
	
	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 / scriplets / HTML / XML / compilador
	
	
	tags JSP / HTML / Java / XML / servidor
	
	
	tags JSP / scriplets / HTML / XML / servidor
	
	
	tags JSP / HTML / Java / Java Script / compilador
	
	
	tags JSP / HTML / Java / Java Script / servidor
	
Explicação:
Os arquivo JSP 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: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.
	
	
	Toda página JSP é transformada em um Servlet.
	
	
	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.
		O uso de um DAO (Data Access Object) em um código tem a função de:
	
	
	
	Encapsular o usuário e senha de acesso ao banco de dados relacional.
	
	
	Prover uma interface para acesso a um banco de dados ou outro mecanismo de persistência.
	
	
	Gerenciar a geração de logs de acesso com API específica.
	
	
	Prover uma camada de segurança para a aplicação.
	
	
	Impedir que uma classe tenha mais de um objeto instanciado.
	
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:
	
	
	
	JMS
	
	
	JNDI
	
	
	RMI
	
	
	JDBC
	
	
	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 método close() da classe Connection fecha uma conexão com o banco de dados.
	
	
	É possivel acessar Banco de Dados que não possuem Driver JDBC próprio através da ponte JDBC-ODBC.
	
	
	O executeQuery é um método da classe Connection para execução de uma consulta.
	
	
	Statement trabalha como um executor de comandos SQL.
	
	
	O PreparedStatement é um descendente de Statement que aceita parametrizações.
	
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.prepareStatement("select * from ALUNOS");
	
	
	List< Aluno > ls = st.executeQuery("select * from ALUNOS");
	
	
	ResultSet rs = st.executeUpdate("select * from ALUNOS");
	
	
	List ls = 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
	
	
	ClassNotFoundException e ServletException
	
	
	SQLException e ClassNotFoundException
	
	
	ClassNotFoundException e ArithmeticException
	
	
	ServletException e ArithmeticException
	
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="#{produtoDAO.obterTodos()}" var="p" >
	
	
	< h:dataTable value="#{clienteDAO.findAll()}" var="c" >
	
	
	< h:dataTable var="#{clienteDAO.findAll()}" value="c" >
	
	
	< h:dataTable var="#{produtoDAO.findAll()}" value="p" >
	
	
	< h:dataTable value="#{clienteDAO.obterTodos()}" var="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?
	
	
	
	Facelet
	
	
	FacesServlet
	
	
	Request
	
	
	Managed Bean
	
	
	Response
	
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?
	
	
	
	Entidade
	
	
	Facelet
	
	
	Controlador
	
	
	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?
	
	
	
	PAC
	
	
	Broker
	
	
	Event-Driven
	
	
	MVC
	
	
	Blackboard
	
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
	
	
	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
	
	
	Restore View
	
	
	Process Validations
	
	
	Apply Requests
	
	
	Update Model Values
	
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 desenvolvimento cuja finalidade é definir uma interface na mesma camada da "lógica da aplicação".
	
	
	de objeto que executa uma operação quando ele recebe uma solicitação (mensagem) correspondente de um outro objeto.
	
	
	de arquitetura de aplicações que visa separar a "lógica da aplicação", a "interface dousuário" e a "persistência de dados".
	
	
	de operação dirigida para uma classe e não para um objeto individual.
	
	
	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:
	
	
	
	Filas e Tópicos
	
	
	Síncrona e Assíncrona
	
	
	Get e Post
	
	
	Assinaturas e Tópicos
	
	
	Filas e Assinaturas
	
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:
	
	
	
	Stateful Session Bean
	
	
	Message Driven Bean
	
	
	Entity Bean
	
	
	Async Queued Bean
	
	
	Stateless 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:
	
	
	
	manifest
	
	
	persistence.xml
	
	
	readme.txt
	
	
	context.xml
	
	
	web.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.
	
	
	Necessitam de interfaces @Local e @Remote.
	
	
	São definidos pela anotação @Message.
	
	
	Apresentam um único método para tratamento de mensagens denominado onMessage.
	
	
	Eles podem guardar informações de estado, como os Statefull Session Beans.
	
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?
	
	
	
	Entity
	
	
	Singleton
	
	
	Stateful
	
	
	Stateless
	
	
	Message Driven
	
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();
	
	
	
	EntityManager; Command; insert
	
	
	Database; Entity; put
	
	
	EntityManagerFactory; EntityManager; persist
	
	
	Connection; Statement; execute
	
	
	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?
	
	
	
	Named
	
	
	Inject
	
	
	SessionScoped
	
	
	ApplicationScoped
	
	
	EJB
	
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?
	
	
	
	EJB
	
	
	JDBC
	
	
	SWING
	
	
	JNDI
	
	
	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:
	
	
	
	Acessar um Managed Bean a partir de outro no mesmo contexto.
	
	
	Instanciar um EntityManager a partir da unidade de persistência.
	
	
	Acessar um EJB a partir de um Managed Bean.
	
	
	Definir um EJB do tipo Stateless.
	
	
	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.
	
	
	
	 
		
	
		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:
	
	
	
	Intercept Filter
	
	
	Singleton
	
	
	Adapter
	
	
	Front Control
	
	
	Session Facade
	
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.
	
	
	Os Managed Beans podem instanciar elementos do tipo EntityManager sem quebrar as regras do modelo MVC.
	
	
	Na arquitetura MVC, as entidades JPA devem acessar os Managed Beans com o uso de @Inject.
	
	
	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
	
	
	Model, View e Control
	
	
	View, Model e Control
	
	
	Control, Model e View
	
	
	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.

Continue navegando