UNIVERSIDADE FEDERAL DO PIAUÍ Centro de Educação Aberta e a Distância CEAD/UFPI Rua Olavo Bilac 1148 - Centro CEP 64.280-001 Teresina PI Brasil Fones (86) 3215-4101/ 3221-6227 ; Internet: www.uapi.edu.br Prova Específica Cargo Desenvolvimento 1. A linguagem de programação Java, lançada em 1995, tem demonstrado ser muito estável. A respeito dessa linguagem, considere as afirmativas a seguir. I - Java é uma linguagem orientada a objetos de herança simples e mista que contém tipos de dados primitivos, como int e objetos. II - Java usa semântica de cópia para tipos de dados primitivos, e semântica de referência para objetos. III - Java é uma linguagem multiplataforma, com enfoque no desenvolvimento de aplicações para a Web. Está correto o que se afirma em a) I, apenas. b) III, apenas. c) I e II, apenas. d) II e III, apenas. e) I, II e III 2. Considere o código Java abaixo package br.ufpi.sie; import java.util.date; class Disciplina { protected String nome; protected Date datainicio; private Date datafim; private Professor ministrante; String getsiapeprofessor() { return ministrante.siape; Com base no código Java e nos conceitos de orientação a objetos, é correto afirmar: a) Qualquer classe, independentemente de pacote, pode herdar os atributos e métodos da classe Disciplina. b) Somente classes do pacote br.ufpa.sie podem herdar os atributos e métodos da classe Disciplina. c) Somente classes do pacote br.ufpa.academico podem herdar os atributos e métodos da classe Professor. d) O atributo siape da classe Professor é privado. e) Se adicionarmos a palavra static antes da definição do método getsiapeprofessor(), a JVM não apresentará erros de compilação.
3. Em relação aos servidores de aplicação Java Enterprise Edition (JEE) 5, todas as afirmativas a seguir estão corretas, EXCETO: a) A plataforma Java EE5 é considerada um padrão de desenvolvimento já que o fornecedor de software nesta plataforma deve seguir determinadas regras se quiser oferecer produtos compatíveis com Java EE5. b) O balanceamento de carga consiste na distribuição das requisições entre os vários servidores de aplicação disponíveis. c) A Microsoft oferece um servidor de aplicação compatível com JEE 5. d) A distribuição das requisições pode ser feita através do serviço de resolução de nomes (DNS), ou através de um recurso de redirecionamento do protocolo http ou por intermédio de um agente despachante (dispatcher). e) O GlassFish é um servidor de Web compatível com aplicações JEE 5. 4. Com relação ao código abaixo, considere que a variável i é local, e a variável Vi é uma variável de classe; a única documentação é o código acima apresentado; os métodos mist(), y1() e y2() fazem parte de uma mesma classe; o critério de aceitação do teste é: o método não entra em loop (laço infinito). public void mist(){ int i = 0; while (i < Vi){ i++; i = (calc(i) <= Vi)?y1(i):y2(i); System.out.println("ok"); Nesse contexto, o procedimento correto é aplicar teste(s) de a) caixa preta que forcem a chamada a mist() e, depois, medir a porcentagem de sucesso do método mist(). b) caixa preta isoladamente ao código objeto dos métodos mist(), y1(), y2() antes de aplicar um teste que envolva o método mist(). c) caixa branca aos métodos mist(), y1() e y2(), e, em seguida, usar o resultado para realizar um teste de mesa no método mist(). c) partição nos métodos mist(), y1() e y2(). e) sistema entre os métodos mist(), y1() e y2(). 5. public class SomaMisteriosa { private static void somatres(int x[]) { x[0] += 3; private static void somadois(int x) { x += 2; public static void main(string args[]) { int x = 0; int y[] = { 0 ; somadois(x);
somatres(y); somadois(y[0]); System.out.print(x + " " + y[0]); Após a execução do trecho acima, será impresso a) 2 5 b) 1 5 c) 0 5 d) 0 3 e) 0 0 6. Considere a seguinte classe: public class Produto implements java.io.serializable { private String nome; private String cor; public Produto() { public Produto(String nome, String cor) { this.nome = nome; this.cor = cor; public String getcor() { return this.cor; public void setcor(string cor) { this.cor = cor; public String getnome() { return this.nome; public void setnome(string nome) { this.nome = nome; O código acima apresenta um(a) a) EJB padrão 2.1 com informação de estado. b) bean de entidade para a tabela Produto. c) classe POJO que segue o padrão JavaBean. d) classe que utiliza JMS. e) classe que implementa o padrão FrontController. 7. Abaixo são exibidas expressões na linguagem Java, nas quais a, b e c são variáveis do tipo boolean. Qual, dentre as expressões que, ao ser avaliada, resulta em um valor diferente das demais? a) (!c b ) &! (a &!b); b) ((!c &!(a & b )) b ); c)((a & b) (!a &!b &!c ) (!a & b )); d) (!c b ) &! (a &!b); e) ((!a ^ c) (b & (a ^c))) &!(a &!b & c);
8. A aplicação do padrão MVC (Model-View-Controller) no desenvolvimento de aplicações Web J2EE permite dividir a aplicação em camadas e resolver uma série de problemas. Sobre os recursos da arquitetura J2EE e o desenvolvimento de aplicações J2EE utilizando o MVC, são feitas as afirmativas abaixo. I - Uma possível estratégia no desenvolvimento de um site Web seria utilizar páginas JSP para construir a camada View, Servlets para a camada Controller e EJBs para a camada Model. II - A API JTA do J2EE permite aos clientes de EJB obter um contexto inicial a partir do qual é possível recuperar o objeto Home de um EJB. III - Na demarcação de transação gerenciada pelo container, se o atributo transacional associado ao método de um EJB for definido como Required, o container sempre criará uma nova transação a cada chamada do método. Está(ão) correta(s) a(s) afirmativa(s) (A) I, apenas. (B) II, apenas. (C) III, apenas. (D) I e II, apenas. (E) I, II e III. 9. Em relação aos conceitos da tecnologia JavaServer Pages (JSP), analise as seguintes afirmativas: I. Uma página JSP é um documento texto que contém dados estáticos em formato HTML e XML, por exemplo, e elementos JSP que constroem o conteúdo dinâmico. II. Os elementos JSP em uma página JSP podem ser expressos nas sintaxes padrão e XML, embora em um dado arquivo, pode-se usar somente uma das sintaxes. III. Uma página JSP em sintaxe XML é um documento XML que pode ser manipulado pelas ferramentas e APIs para documentos XML. Além disso, pode ter um jsp:root como elemento raiz. Marque a alternativa CORRETA: a) apenas as afirmativas I e II são verdadeiras. b) apenas as afirmativas I e III são verdadeiras. c) apenas as afirmativas II e III são verdadeiras. d) todas as afirmativas são verdadeiras. 10. Um dos princípios do padrão de arquitetura MVC é a separação da lógica da apresentação do modelo. PORQUE É, muitas vezes, mais prático manter a visão e o controlador unificados, inclusive, por demandas da tecnologia. Analisando-se as afirmações acima, conclui-se que (A) as duas afirmações são verdadeiras, e a segunda justifica a primeira. (B) as duas afirmações são verdadeiras, e a segunda não justifica a primeira. (C) a primeira afirmação é verdadeira, e a segunda é falsa. (D) a primeira afirmação é falsa, e a segunda é verdadeira. (E) as duas afirmações são falsas. 11. Stored Procedure é uma coleção de comandos em a) JavaScript, que encapsulam tarefas repetitivas, aceitam parâmetros de entrada e retornam valores
correspondentes à execução dos comandos JavaScipt. b) SQL, que encapsulam tarefas repetitivas, aceitam parâmetros de entrada e retornam valores correspondentes à execução dos comandos SQL. c) SQL, que não encapsulam tarefas repetitivas, aceitam parâmetros de entrada e não retornam valores correspondentes à execução dos comandos SQL. d) JavaScript, que não encapsulam tarefas repetitivas, aceitam parâmetros de entrada e não retornam valores correspondentes à execução dos comandos SQL. e) SQL, que encapsulam tarefas únicas, não aceitam parâmetros de entrada e retornam valores correspondentes à execução dos comandos 12. Em relação ao Tomcat e Jboss: a) Tomcat é um servidor de aplicações completo baseado na plataforma J2EE. b) JBoss pode funcionar integrado a um servidor web dedicado, tal como Apache httpd ou Microsoft IIS. c) Tomcat implementa conteiner EJB. d) No Jboss todos os módulos que compõem o servidor, além das próprias aplicações, são componentes que podem ser substituídos sem a necessidade de paradas no servidor. e) JBoss é um conteiner Web, que utiliza parte da plataforma corporativa Java EE para implementar funcionalidades em Servlet e JSP. 13. No Hibernate, a) executa operações de busca, cadastro ou alteração de dados, sem requerer mapeamento da tabela em arquivo XML. b) INSERT é a única instrução SQL que requer utilização pelo desenvolvedor. c) os dados tabulares de um banco de dados são transformados em um grafo de objetos definido pelo desenvolvedor. d) a solução aos ambientes Java de mapeamento objeto/relacional é proporcionada pela abstração de toda a parte de representação de tipo de dados por meio de arquivos HTML. e) o desenvolvedor pode acessar diretamente uma tabela de banco de dados, bastando, para isso, abrir uma conexão. 14. Analise os itens a seguir sobre JEE e EJB I. Um servidor EJB gerencia contêineres EJB e Web. II. O contêiner EJB gerencia a execução de EJBs em aplicações J2EE III. O contêiner Web gerencia a execução de páginas JSP e componentes servlet em aplicações J2EE. IV. Um session bean representa um único cliente dentro do servidor J2EE. Para acessar um aplicativo que é instalado no servidor, o cliente invoca os métodos do session bean. Está correto o que se afirma em: a) I, II, III e IV b) I e II, apenas c) I, III e IV, apenas d) I e IV, appenas e) III e IV, apenas 15. Quanto às tecnologias Java, assinale a opção correta. a) Clientes J2EE são necessariamente páginas web dinâmicas que normalmente não fazem acessos a banco de dados, nem executam regras de negócio complexas.
b) Em uma aplicação J2EE típica, um EJB é criado, controlado e destruído pela aplicação cliente. c) JSP pode ser usado para desenvolvimento de páginas web dinâmicas. A lógica que gera o conteúdo dessas páginas é descrita utilizando-se a linguagem Java. d) Um componente J2EE é uma unidade funcional de software autocontida, escrito na linguagem de programação Java e executado exclusivamente em servidores. e) JPA lida com a forma como dados relacionais são mapeados para objetos Java e com a forma como esses objetos são armazenados em um banco de dados relacional. 16. Um servidor de aplicações provê diversos serviços para as aplicações que hospeda. Considerando-se implementações típicas em J2EE/JEE e.net, compondo uma arquitetura em 3 camadas, é correto afirmar que, dentre os serviços oferecidos pelos servidores de aplicações, encontra-se a) validação de objetos de domínio, segundo as regras de negócio da aplicação. b) geração de código através de MDA (Model Driven Architecture). c) persistência final dos objetos de domínio. d) suporte nativo à arquitetura MVC. e) estrutura para troca de mensagens entre aplicações. 17. Assinale a alternativa correspondente ao resultado da execução do código abaixo. <html> <body> <script> x = 5 y = 0 s = "5" if (x = 5) { alert("x = 5") if (y = 0) { alert("y = 0") if (x == "5") { alert("x igual ao caractere 5") if (x === s) { alert("valores iguais e tipos diferentes") </script> </body> </html> a) x = 5 y = 0 x igual ao caractere 5 b) x = 5 y = 0 x igual ao caractere 5 valores iguais e tipos diferentes c) x = 5 x igual ao caractere 5 valores iguais e tipos diferentes d) x igual ao caractere 5 valores iguais e tipos diferentes e) x = 5 x igual ao caractere 5 18. Um servlet é um objeto java que recebe requisições respondendo-as conforme cada solicitação,
como uma página HTML gerada dinamicamente. O gráfico abaixo ilustra isso: Com base em servlet, marque a alternativa correta. a) A interface Servlet possibilita o uso apenas do protocolo HTTP. b) Diversas requisições podem ser feitas à mesma servlet, em tempos diferentes, em um único servidor. c) Para escrevermos um Servlet, criamos uma classe java que estenda HttpServlet e sobrescreva um método chamado service. d) A tag <www-pattern> possibilita flexibilidade de disponibilizar uma servlet através de várias URLs de um caminho. e) O tratamento de erros em uma servlet é configurado no arquivo www.xml. 19. Durante um processo de revisão do sistema de Compras, escrito em plataforma J2EE, foram levantadas as necessidades a seguir. I - O sistema de Compras deverá utilizar a camada de negócio do sistema de Contabilidade, também desenvolvido em plataforma J2EE, e que está instalado em outros servidores, para realizar consultas a informações bancárias dos fornecedores, sendo que a camada de negócio dos dois sistemas está baseada em EJB. II - Um novo subsistema deverá ser implementado para atender novas necessidades do sistema de Compras, entretanto, os EJBs, que irão compor a camada de negócio deste novo subsistema, não devem utilizar descritores de deployment, mas sim, outra forma alternativa de configuração. III - Um mecanismo assíncrono que permita que fornecedores possam, por meio do site do sistema de Compras, solicitar o envio de um e-mail com a lista de licitações que estão disponíveis no site e o valor das licitações de que os fornecedores estão participando é assíncrono porque o fornecedor não precisa ser informado de que o seu pedido foi realizado com sucesso ou não, além do fato de que este seria um processo complexo de ser implementado de forma síncrona. IV - Um mecanismo de auditoria deve ser implementado em alguns EJBs do sistema de Compras de forma tal que sempre que os métodos de negócio destes EJBs forem chamados, um log de auditoria será gravado em uma tabela do banco de dados do sistema de Compras. Para cada uma das necessidades acima, um analista propôs, respectivamente, as seguintes soluções: Implementar as interfaces remotas dos EJBs do sistema de Contabilidade que forem chamados pelo sistema de Compras, além de realizar todas as configurações e builds necessários.como as chamadas serão remotas, os argumentos serão passados por referência para os métodos dos EJBs da Contabilidade. Utilizar o recurso de annotations, como por exemplo a Stateless annotation, que especifica que um EJB não pode manter o estado durante uma sessão com o cliente. implementar um MDB (Message Driven Bean) para tratar as requisições e o processamento do envio do e-mail, uma vez que o processo é assíncrono. Criar classes de interceptors para os EJBs, sendo o mecanismo de auditoria implementado nos métodos das classes de interceptors. Sabendo-se que os EJBs do sistema de Compras seguem o padrão 3.0 e os da Contabilidade seguem o padrão 2.1, conclui-se que as soluções apresentadas pelo analista atendem às necessidades (A) I e II, apenas. (B) II e III, apenas. (C) I, II e IV, apenas. (D) II, III e IV, apenas. (E) I, II, III e IV.
20. Aplicações web consistem de componentes web (Servlets, JSP, HTML, XML, etc), recursos estáticos (imagens, folhas de estilo, arquivos.js, etc) e classes e bibliotecas Java. Com raríssimas exceções, o desenvolvimento de aplicações web usando tecnologias baseadas em Java segue as seguintes etapas: a) Desenvolver o código dos componentes web b) Escrever o descritor de instalação da aplicação c) Compilar os componentes e classes auxiliares d) Empacotar a aplicação web e) Instalar a aplicação f) Acessar a URL que permite acessar a aplicação Usando linguagem dissertativa descreva cada uma das etapas acima.