1.a) Dado o trecho de código abaixo, informe qual será a saída gerada. List<String> lista = new ArrayList<String>(); lista.add("Maria"); lista.add("José"); lista.add("Joaquim"); lista.remove("José"); System.out.println(lista.size() + lista); 1.b) Dado o trecho de código abaixo, informe qual será a saída gerada. TreeSet<String> lista = new TreeSet<String>(); lista.add("Maria"); lista.add("José"); lista.add("Ana"); lista.add("Maria"); System.out.println(lista.size() + lista); 1.c) Dado o trecho de código abaixo, informe qual será a saída gerada. List<String> lista = new LinkedList<String>(); lista.add("Maria"); lista.add("José"); lista.add("Ana"); lista.add("Maria"); System.out.println(lista.size() + lista); 2.a) Criar um método exibir( ) que recebe uma LinkedList de strings chamada “lista” e exibe através do método System.out.println( ) todos os elementos dessa lista. O percurso na lista deve ser feito através de um iterador (java.util.Iterator). 2.b) Criar um método exibir( ) que recebe um ArrayList de strings chamado “lista” e exibe através do método System.out.println( ) todos os elementos dessa lista. O percurso na lista deve ser feito através de um iterador (java.util.Iterator). 2.c) Criar um método exibir( ) que recebe um TreeSet de strings chamado “conjunto” e exibe através do método System.out.println( ) todos os elementos desse conjunto. O percurso no conjunto deve ser feito através de um iterador (java.util.Iterator). 3.a) Descreva uma situação em uma aplicação distribuída onde é recomendável utilizar um StateLess SessionBean? 3.b) Qual a principal diferença entre um StateFul SessionBean e um StateLess SessionBean? 3.c) Qual a principal função de um MessageDrivenBean? 3.d) Qual a principal diferença ente um EntityBean e um SessionBean? 4.a,b,c,d) Explique resumidamente o que faz cada linha de código abaixo: EntityManagerFactory emf = Persistence.createEntityManagerFactory("unidade"); EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); Aluno a = new Aluno(); a.setNome(“Maria”); em.persist(a); em.getTransaction().commit(); 5.a) Com base no diagrama de classes e no modelo de banco de dados abaixo, escreva o código da classe de entidade: 5.b) Com base no diagrama de classes e no modelo de banco de dados abaixo, escreva o código da classe de entidade: 5.c) Com base no diagrama de classes e no modelo de banco de dados abaixo, escreva o código da classe de entidade: 7.a) Qual a função do Gerenciador de Entidades na JPA? 7.b) O que é uma Unidade de Persistência na JPA? 7.c) Qual é o nome do arquivo descritor de implantação em que as Unidades de Persistência na JPA são descritas? 7.d) O que significa Contexto de Persistência na JPA? 6.a,b,c,d) De acordo com o padrão MVC, as aplicações são divididas em três partes: Model, View e Controler que representam respectivamente: a- Classes de Apresentação, Classes de Dados, Lógica de Negócios b- Classes de Dados, Lógica de Negócios, Classes de Apresentação c- Classes de Dados, Classes de Apresentação, Lógica de Negócios d- Lógica de Negócios, Classes de Apresentação, Classes de Dados 6.a) Qual classe deve ser utilizada para armazenamento de informações com as seguintes características: Os elementos não podem se repetir, e quando recuperados, deverão estar classificados. a- ArrayList b- HashSet c- TreeSet d- LinkedList 6.b) Qual classe é mais indicada para armazenamento de informações com a seguinte característica: Serão freqüentemente inseridos e removidos elementos nas extremidades da estrutura (no início e no final). a- HashSet b- LinkedList c- ArrayList d- TreeSet 6.c) Qual classe é mais indicada para armazenamento de informações com as seguintes características: A quantidade de elementos muda raramente e os elementos serão recuperados através de seu índice. a- LinkedList b- ArrayList c- TreeSet d- HashSet 6.d) Qual classe é mais indicada para armazenamento de informações com as seguintes características: A quantidade de elementos muda com freqüência, os elementos não podem se repetir e não há a necessidade de estarem classificados. a- TreeSet b- LinkedList c- HashSet d- ArrayList 7.a) Unidade de Persistência na JPA significa: a- Uma única entidade que está sendo persistida no Banco de Dados. b- Conjunto de classes mapeadas para um banco de dados relacional. c- Unidade de processamento onde as entidades são persistidas. d- Ambiente onde as entidades são gerenciadas. 7.b) Na JPA, Gerenciador de Entidades significa: a- Driver que gerenciará a persistência das entidades. b- Serviço que gerenciará a conexão diretamente com o Banco de Dados. c- Serviço que gerenciará o conjunto de entidades registradas dentro de um Contexto de Persistência. d- Outro nome para o Driver JDBC. 7.c) Contexto de Persistência na JPA significa: a- Ambiente (sessão) que envolve o conjunto de instâncias de entidades gerenciadas pelo Entity Manager. b- Aplicação que utiliza entidades persistentes. c- Ambiente de desenvolvimento de aplicações que utilizam a JPA. d- Container onde os Enterprise JavaBeans são executados. 7.d) Provedor de Persistência (Persistence Provider) na JPA é: a- Nome genérico que é dado ao Banco de Dados. b- Serviço que gerenciará o conjunto de entidades registradas dentro de um Contexto de Persistência. c- Unidade de processamento onde as entidades são persistidas. d- A implementação das interfaces da JPA. 8.a) Qual é a anotação que define que uma classe será persistida na JPA? a- @Table b- @Entity c- @Persist d- @Class 8.b) Qual é a anotação que define o nome da tabela onde as entidades de uma classe serão persistidas? a- @TableName b- @Name c- @Table d- @DBTable 8.c) Qual é a anotação que define o nome da coluna onde um atributo de uma classe será persistido? a- @Column b- @ColumnName c- @FieldName d- @Atribute 8.d) Qual é a anotação que define o atributo de chave primária da entidade? a- @PrimaryKey b- @Identity c- @IdColumn d- @Id 9.a) Qual código abaixo representa a criação de um Gerenciador de Entidades? a- EntityManager em = fabrica.getEntityManager(); b- EntityManager em = fabrica.createEntityManager(); c- EntityManager em = fabrica.newEntityManager(); d- EntityManager em = fabrica.createNewEntityManager(); 9.b) Qual código abaixo representa a definição de início de uma transação? a- EntityManager.beginTransaction(); b- EntityManager.getTransaction().start(); c- EntityManager.startTransaction(); d- EntityManager.getTransaction().begin(); 9.c) Qual método abaixo torna um objeto de entidade gerenciável pelo Gerenciador de Entidades? a- EntityManager.persist(); b- EntityManager.save(); c- EntityManager.managed(); d- EntityManager.linked(); 9.d) Qual método abaixo elimina uma entidade do Banco de Dados? a- EntityManager.erase(); b- EntityManager.kill(); c- EntityManager.remove(); d- EntityManager.delete(); 10.a) Qual é a anotação que define que um atributo será auto-incrementado? a- @Identity b- @Auto_Increment c- @GeneratedValue d- @AutoValue 10.b) Qual pacote deve ser importado em uma classe que utiliza JPA? a- javax.ejb.persistence b- javax.persistence c- javax.jpa d- javax.sql.persistence 10.c) A interface responsável pela execução de consultas tanto dinâmicas como nomeadas é: a- javax.persistence.EntityManager b- javax.persistence.Select c- javax.persistence.ExecuteQuery d- javax.persistence.Query 10.d) Qual é o método da interface javax.persistence.Query que executa uma consulta e retorna um único objeto como resultado? a- getSingleResult() b- getSingleQuery() c- getUniqueResult() d- executeQuery() 11.a) Qual é o método da interface javax.persistence.EntityManager que cria uma consulta identificada? a- createIdentityQuery() b- createQuery() c- createNamedQuery() d- createDefinedQuery() 11.b) Dentro do Contexto de Persistência, quando uma entidade está sendo controlada pelo EntityManager, ou seja, alterações na entidade serão refletidas no banco de dados, dizemos que ela está no estado: a- DETACHED b- MANAGED c- NEW d- CONTROLED 11.c) Dentro do Contexto de Persistência, quando uma entidade NÃO está sendo controlada pelo EntityManager, ou seja, alterações na entidade não serão refletidas no banco de dados, dizemos que ela está no estado: a- DETACHED b- MANAGED c- NEW d- CONTROLED 11.d) Dentro do Contexto de Persistência, no momento imediatamente após a criação de uma entidade, dizemos que esta entidade está no estado: a- DETACHED b- MANAGED c- NEW d- CONTROLED 12.a) São características de um Stateless SessionBean: a- Podem ser disponibilizados através de um pool; podem ser apassivados. b- Não Podem ser disponibilizados através de um pool; não possuem informações de estado. c- Podem ser disponibilizados através de um pool; possuem informações de estado. d- Podem ser disponibilizados através de um pool; não possuem informações de estado. 12.b) São características de um Stateful SessionBean: a- Podem ser disponibilizados através de um pool; podem ser apassivados. b- Não Podem ser disponibilizados através de um pool; não possuem informações de estado. c- Não Podem ser disponibilizados através de um pool; possuem informações de estado. d- Podem ser disponibilizados através de um pool; não possuem informações de estado. 12.c) São características de um EntityBean: a- Representam as regras de negócio. b- Representam o modelo da aplicação(os dados). c- Representam processos assíncronos. d- Modelam o fluxo de trabalho na aplicação. 12.d) São características de um SessionBean: a- São utilizados para controlar as mensagens em uma sessão. b- São utilizados para modelar os dados da aplicação. c- São utilizados para modelar as regras de negócio da aplicação. d- São utilizados para gerenciar os dados de uma sessão. 13.a) Os Enterprise JavaBeans são componentes utilizados em: a- Aplicações Distribuídas. b- Aplicações Cliente-Servidor onde a comunicação é baseada somente em sockets. c- Aplicações Desktop com uso de Swing. d- Aplicações Desktop que fazem uso intenso de bancos de dados. 13.b) A JPA é uma tecnologia de acesso a dados que: a- Pode ser utilizada apenas em Aplicações Distribuídas. b- Pode ser utilizada tanto em Aplicações Distribuídas como Aplicações Desktop. c- Pode ser utilizada apenas em Aplicações Desktop. d- Pode ser utilizada apenas em aplicações que “rodam” dentro de um Contêiner EJB. 13.c) Aplicações que utilizam Enterprise JavaBeans são executadas: a- Em um contêiner EJB. b- Em um contêiner Web. c- Em um contêiner JPA. d- Tanto em um contêiner EJB como em um contêiner Web. 13.d) Para se utilizar a tecnologia JPA: a- É necessário o uso de um contêiner Web. b- É necessário o uso de um Provedor de Persistência. c- É necessário o uso de um contêiner EJB. d- É necessário o uso de uma Interface Gráfica. 14.a) São anotações utilizadas em beans de sessão: a- @Entity e @ID b- @Stateless e @Table c- @Stateful e @Stateless d- @Remote e @Column 14.b) São anotações utilizadas em beans de entidade: a- @Stateless e @Table b- @Column e @ID c- @Stateful e @Stateless d- @Remote e @Column 14.c) São anotações utilizadas em beans de sessão: a- @Stateless e @Table b- @Entity e @ID c- @Stateful e @Local d- @Remote e @Column 14.d) São anotações utilizadas em beans de sessão: a- @Stateless e @Remote b- @Entity e @ID c- @Stateful e @Entity d- @Remote e @Column 15.a) Os componentes EJB fazem parte da: a- Camada Cliente b- Camada Web c- Camada de Negócio d- Camada da Interface Gráfica 15.b) Os componentes EJB EntityBeans fazem parte da: a- Camada Cliente b- Camada de Persistência c- Camada Web d- Camada de Negócio 15.c) Os componentes EJB SessionBeans fazem parte da: a- Camada de Persistência b- Camada Web c- Camada de Negócio d- Camada Cliente 15.d) Qual alternativa em que todos os itens fazem parte da tecnologia JavaEE: a- EJB; JSP; Servlets; JMS b- JSP; Servlets; ActiveX; JCA; EJB c- JSF; JDBC; Swing; JTA d- JCA; JSP; JDBC; JNI 19.a,b,c,d) Quando NÃO usar um SessionBean? a- Quando o estado do Bean não é persistente. Existindo por um certo período de tempo. b- Quando o estado do Bean representa a interação entre o bean e um cliente específico. c- Quando o bean gerencia o fluxo de trabalho dos diversos enterprise beans. d- Quando o bean representa uma entidade de negócios e não um procedimento. 20.a,b,c,d) Quando usar um EntityBean? a- Quando o estado do Bean não é persistente. Existindo por um certo período de tempo. b- Quando o bean representa uma entidade de negócios e não um procedimento. c- Quando o estado do Bean representa a interação entre o bean e um cliente específico. d- Quando o bean gerencia o fluxo de trabalho dos diversos enterprise beans. import javax.persistence.*; public class CriaAluno { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("teste"); EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); Aluno a = new Aluno(); a.setNome("Maria"); a.setRa(123456789); a.setMs1(5.5); a.setMs2(4.5); em.persist(a); em.getTransaction().commit(); em.close(); emf.close(); System.out.println("id do aluno persistido: " + a.getId()); } } Para que o código acima fique correto, as lacunas devem ser preenchidas com os respectivos trechos: a) createEntityManagerFactory, EntityManager, begin(), persist b) createFactory, EntityManager, start, insert c) createEntityManagerFactory, Entity, begin(), write d) createManagerFactory, EntityManager, start(), persist CURSO: SISTEMAS DE INFORMAÇÃO/TECNOLOGIA EM PROC DE DADOS DISCIPLINA: TÓPICOS AVANÇADOS DE PROGRAMAÇÃO QUESTÕES DISSERTATIVAS 1. Implementar um método em Java, chamado “imprimeMapa()” que recebe um objeto “Map” (coleção), verifica se ele possui elementos e, em caso afirmativo, imprime a chave e o valor no seguinte formato: “<chave> - <valor>”. Solução: public void imprimeMapa(Map mapa) { if(!mapa.isEmpty()) for(Object key : mapa.keySet()) System.out.printf("%-10s%10s\n", key, mapa.get(key)); } 2. Esquematize e explique o ciclo de vida de um objeto persistente JPA (“Java Persistence API”). Solução: Numa unidade de trabalho, o objeto pode ser criado pelo operador new e assim ele é transiente (não persistente). Nesse caso, ele está no estado “New”. O objeto pode também ser criado persistente (entidades) e colocado direto no estado “Managed”. É possível passar do estado “New” para o estado “Managed”, ou seja, transformar um objeto transiente numa entidade. Uma vez que o objeto está no estado gerenciado, ele pode ser colocado do estado “Removed”, ou seja, ser programado para ser removido no final da unidade de trabalho. Nesse caso, ele não poderá mais retornar ao estado de persistência. Ainda no estado gerenciado, o objeto persistente poderá ser colocado no estado “Detached”, ou seja, desligado (mantém a identidade com o banco de dados, mas não é mais persistente). Nesse caso ele poderá retornar ao estado de persistência. O ciclo, com esses processos descritos, ocorre enquanto a unidade de trabalho estiver aberta. 3. O gerenciador de persistência JPA, ou gerenciador de entidades (“Entity Manager”) é responsável por quase todas as tarefas de persistência de objetos, através de seus serviços fornecidos pela API de gerenciamento de persistência. Liste quais são estas tarefas. Solução: (i) (ii) (iii) (iv) Operações de CRUD (criar, consultar, atualizar, excluir) básicas; Execução de consulta; Controle de transições de estado (processos); Gerenciamento do contexto de persistência. 4. A classe abaixo está totalmente preparada para se tornar um objeto persistente JPA? Se não, o que está faltando? Nesse caso, reescreva-a incluindo, basicamente, o que falta. //classe externa - representa a tabela "Tabela" public class Tabela implements java.io.Serializable { //atributos da classe Tabela private long id; //representa o campo "campo_ID" private String campo; //representa o campo "campo" //construtor padrão da classe Tabela public Tabela(){} //propriedade de consulta do atributo id public long getId(){return id;} //propriedade de alteração do atributo id public void setId(long id){this.id = id;} //propriedade de consulta do atributo campo public String getCampo(){return campo;} //propriedade de alteração do atributo campo public void setCampo(String campo){this.campo = campo;} } Solução: //classe externa - representa a tabela "Tabela" @Entity @Table(name=“Tabela”) public class Tabela implements java.io.Serializable { //atributos da classe Tabela @Id @Column(name = "campo_ID") private long id; //representa o campo "campo_ID" @Column(name = "campo ") private String campo; //representa o campo "campo" //construtor padrão da classe Tabela public Tabela(){} //propriedade de consulta do atributo id public long getId(){return id;} //propriedade de alteração do atributo id public void setId(long id){this.id = id;} //propriedade de consulta do atributo campo public String getCampo(){return campo;} //propriedade de alteração do atributo campo public void setCampo(String campo){this.campo = campo;} } 5. O ciclo de vida abaixo está relacionado à qual “enterprise bean”? Explique-o. Solução: SessionBean sem posição (Stateless). Quando uma instância muda do estado inexistente para o estado de método pronto para execução, três operações são realizadas. Primeiro o bean é instanciado pela invocação do método class.newInstance(). Depois, o método SessionBean.setSessionContext(SessionContext context) é invocado na instância do bean e finalmente o método ejbCreate() é acionado pelo contêiner e este método é acionado somente uma vez no ciclo de vida da sessão bean sem estado. QUESTÕES DE MÚLTIPLA ESCOLHA 6. A interface List não pode ser instanciada. Para utilizá-la é necessário implementá-la através de classes. Qual das opções abaixo possui somente classes que implementam a interface List? a) ArrayObject, LinkedList b) ArrayList, LinkedList c) MapList, ArrayList d) ArrayList, ListObject 7. Qual a linha de código correta para criar um objeto Set? a) b) c) d) Set <Integer, String> map = new HashMap <Integer, String>(); Set <Integer, String> map = new Set <Integer, String>(); Map <String> map = new HashSet <String>(); Set <String> objSet = new HashSet <String>(objCollection); 8. Em JPA, como é chamada a área de memória onde os objetos persistentes se encontram? a) b) c) d) Gerenciador de persistência Gerenciador de entidades Contexto de objetos transientes Contexto de persistência 9. Qual anotação JPA informa ao container EJB para qual tabela do banco de dados a classe será mapeada? a) b) c) d) @Table @Column @Entity @TableClass 10. No código do arquivo de configuração “persistence.xml” abaixo, qual o nome da unidade de trabalho? <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="acessoA"> <provider> oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider </provider> <class>entidades.Tabela</class> <properties> <property name="toplink.logging.level" value="INFO"/> <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/> <property name="toplink.jdbc.url" value="jdbc:mysql://localhost/banco"/> <property name="toplink.jdbc.user" value="root"/> <property name="toplink.jdbc.password" value="root"/> </properties> </persistence-unit> </persistence> a) Tabela b) oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider c) INFO d) acessoA 11. As linhas de código para criação da unidade de trabalho (“unidtrab”) em JPA e do gerenciador de entidades são, respectivamente: a) EntityManager emf = Persistence.createEntityManager(“unidtrab”); EntityManagerFactory em = emf.createEntityManagerFactory(); b) Entity emf = createEntityManagerFactory(“unidtrab”); EntityManager em = emf.createEntityManagerFactory(); c) EntityManagerFactory emf Persistence.createEntityManagerFactory(“unidtrab”); EntityManager em = emf.createEntityManager(); = d) EntityManagerFactory emf = createEntityManagerFactory(“unidtrab”); EntityManager em = emf.createEntityManager(); 12. Para efetuar a inclusão, em JPA, de um registro numa tabela do banco de dados, é necessário utilizar qual método do objeto EntityManager? a) b) c) d) include(objEntity) persist(objEntity) inside(objEntity) remove() 13. Faz parte da estrutura básica de aplicativos EJB (Enterprise Java Beans): a) b) c) d) Persistência, banco de dados e GUI Somente consulta a banco de dados Session Beans, Entity Beans e Message-driven Banco de dados, JPA e JQL 14. Session Beans (Componentes de Sessão) podem ser de dois tipos. Qual opção identifica esses tipos? a) b) c) d) Stateless e JPA Statefull e EJB Message-Driven e JPA Stateless e Statefull 15. Message-driven é um tipo de _________. Qual das opções abaixo complementa a frase anterior? a) b) c) d) JPA (Java Persistence API) Session Beans EJB (Enterprise Java Beans) Stateless 1 - Dado o programa abaixo execute: a) Chamar comando para mostrar a quantidade de registros no conjunto. b) Crie um looping através do Iterator para mostrar todos os elementos. 2 - Baseado na classe de persistência abaixo PersisteAluno, escreva o código da classe CriaAluno para gravar um ALUNO e um RA no Banco de Dados. 3 - Qual a diferença entre StateFul SessionBean e StateLess SessionBean? 4 - Quando devemos utilizar EJB nas aplicações ? 5 - Dado o programa abaixo execute: a) Comando para mostrar a quantidade de registros na lista. b) Remover o primeiro registro. c) Remover “Maria” d) Mostrar o último elemento da lista. e) Embaralhar a lista. 6 – Qual annotation deve ser utilizada numa interface SessionBeans, para definir que seus métodos serão acessíveis localmente? a) @Local b) @Stateless c) @Remote d) @Stateful 7 - Qual o tipo de retorno de um comando executeUpdate() a) Statement b) Table c) List d) ResultSet 8 - Qual o método deve-se utilizar para uma query que retorna mais de 1 registro ? a) getResultSet () b) getResultList() c) getResult () d) getSingleResult 9 - Onde devem ser declaradas as NamedQueries ? a) No arquivo persistence.xml b) No programa em execução. c) Na classe de persistência. d) Em um banco de dados. 10 - O que faz o comando declarado no arquivo persistence.xml: <property name="toplink.ddl-generation" value="create-tables" /> a) Cria uma nova tabela sobreescrevendo a antiga b) Cria uma nova tabela quando não existir c) Não executa nada, é apenas um informativo d) Gera um script da tabela 11 - O método executeUpdate( ) retorna um número inteiro. O que representa esse número? a) Quantidade de registros na tabela b) Quantidade de registros afetados. c) Código interno da execução d) Quantidade de parâmetros da query. 12 - Qual o método utilizado para localizar uma Entidade: a) Entidade e = em.find(Entidade.class, chave); b) Entidade e = em.findEntity(Entidade.class, chave); c) Entidade e = em.find(chave, Entidade.class); d) Entidade e = em.localFind(Entidade.class, chave); 13 - Qual annotation utilizamos para definir um atributo que não será gravado no banco de dados ? a) @Id b) @Managed c) @Transient d) @Removed 14 - Quais são os tipos de Beans de Sessão (Session Beans) ? a) EntityBeans e MessageDriven b) Persist e Transient c) Stateful e Stateless d) Temporário e Permanente 15 - Qual comando é utilizado para gravar definitivamente as alterações no banco de dados? a) em.getTransacion( ).rollback( ) b) em.getTransacion( ).save( ) c) em.getTransacion( ).close( ) d) em.getTransacion( ).commit( ) CURSO: TECNOLOGIA EM PROC DE DADOS DISCIPLINA: TÓPICOS AVANÇADOS DE PROGRAMAÇÃO QUESTÕES DISSERTATIVAS 16. Na classe abaixo (exeArvore), que implementa a interface IContratoColecoes, o método preencher() popula a coleção Arvore com 4 valores , o método Imprimir() exibe esses valores. Qual será a saída na tela de console ao executarmos o método Imprimir() ? «interface»IContratoColecoes public class exeArvore implements IContratoColecoes { private TreeSet<String> Arvore; @Override public void preencher() { Arvore.add("z"); Arvore.add("l"); Arvore.add("b"); Arvore.add("a") } +imprimir() +preencher() +ordenar() @Override public void imprimir() { Iterator it = Arvore.iterator(); while (it.hasNext()) { String key = (String) it.next(); System.out.println(key); } @Override . public void ordenar() { }; 17. Se instanciarmos a classe exeListaSimples(abaixo) e chamarmos os métodos na seguinte ordem, preencher,ordenar e imprimir, a saída será a seguinte “Nr 0,Nr 1,Nr 10,Nr 2,Nr 3,Nr 4,Nr 5,Nr 6,Nr 7,Nr 8,Nr 9”. Porque o Nr 10 aparece após o Nr 1 e não após o Nr 9, que aparentemente é a forma correta de ordenação, mesmo após termos efetuado a ordenação da coleção ? public class exeListaSimples implements IContratoColecoes{ private ArrayList<String> listaSimples; public exeListaSimples() {listaSimples=new ArrayList<String>();} public void preencher() { for (int i= 10; i >=0; i--) listaSimples.add("Nr " + i + ",");} public void imprimir(){ for (int i= 0; i <=10; i++) System.out.print(listaSimples.get(i));} public void ordenar() { Collections.sort(listaSimples);} } 18. Inclua as notações necessárias na classe abaixo para que seja persistida utilizando JPA. Observação, a tabela ainda não existe na database e a coluna descrição deve aceitar nulos e ter o tamanho máximo de 50 caractéres. public class Produto { private Long id; private String nome; private String descricao; private Double preco; } 19. Sistemas em camadas surgiram para: Melhor aproveitar os PCs da empresa ,oferecer sistemas com interfaces gráficas amigáveis, integrar o desktop e os dados corporativos, a camada servidor é responsável por tratar dos dados (utilizando um Sistema Gerenciador de Banco de Dados - SGBD), qual o papel da camada cliente nessa arquitetura ? 20. Em Java EE, qual o papel dos containers? QUESTÕES DE MÚLTIPLA ESCOLHA 21. Qual o tipo de coleção que é recomendada quando o tamanho da lista é previsível e as operações de inserção e remoção são feitas, em sua maioria, no fim da lista (evitando deslocamentos). e) HashMap f) ArrayList g) HashSet h) TreeSet 22. Hashset é uma implementação de Set que utiliza uma tabela hash internamente, qual o benefício de utilizar esse tipo coleção? e) f) g) h) O acesso é rápido, tanto para leitura quanto para modificação Entradas em formato de tupla (chave,valor); Bytecode reduzido; Depuração mais rápida; 23. A utilização de código SQL dentro de uma aplicação agrava o problema da independência de plataforma de banco de dados e complica, em muito, o trabalho de mapeamento entre classes e banco de dados relacional. Que framework Java melhor endereça esse tipo de problema ? e) f) g) h) JDBC ODBC Struts Java Persistence API 24. No Java Persistence API a interface EntityManager define diversos métodos de manipulação das classes, qual o papel do método Merge? e) f) g) h) Remove um objeto. Realiza update das informações do objeto para a entidade. Cria um novo objeto. Une informações de uma entidade com a outra. 25. O que ocorrerá com meu banco de dados se o arquivo persistence.xml possuir a seguinte linha de configuração? <property name="toplink.ddl-generation" value="drop-and-create-tables"/> e) f) g) h) O nível de log será baixo. A consulta retornará mais lentamente. A base de dados será eliminada(drop) e o programa não será executado. A cada execução do programa das entidades do banco de dados são eliminadas e reconstruídas. 26. Oracle toplink (Oracle.toplink) é um provedor JPA, também são exemplo de provedores JPA : e) Microsoft ODBC; f) JDBC; g) Hibernate, Kodo e OpenJPA h) Webservice; 27. O que é um message-driven bean ? e) Um tipo de Instant Messenger f) Um Enterprise Bean que permite as aplicações Java EE processarem mensagens de maneira assíncrona. g) Representa um objeto de negócio h) remove() 28. Onde a interface EntityManager obtém as informações necessárias para acessar o banco de dados numa aplicação que utiliza JPA ? e) f) g) h) Gerenciador de drivers ODBC do Windows. Do Message-driven bean. No arquivo de persistência (persistence.xml). Diretamente do banco de dados 29. Qual o principal benefício da utilização da camada EIS (Enterprise Information System) e) f) g) h) Organiza e facilita o acesso aos sistemas de negócio (Legado) das empresas. Facilidade de visualização. Muitos componentes de interface disponíveis. Criar entidade no banco de dados sem utilizar comandos DDL. 30. O que é um Session Bean Stateful ? e) Pattern de acesso a banco de dados, também conhecido como singleton. f) Tipo de coleção g) EJB (Enterprise Java Beans), que em uma aplicação distribuída age como extensão do cliente do lado do servidor. h) Tipo de provedor JPA