Prévia do material em texto
1a Questão Qual técnica permite que vários métodos tenham o mesmo identificador, variando somente sua assinatura? Sobrecarga Sobrescrita Herança Polimorfismo Encapsulamento 2a Questão No Java, é uma interface que não permite elementos duplicados e modela a abstração matemática de conjunto. Contém apenas métodos herdados da interface Collection e adiciona a restrição de que elementos duplicados são proibidos. A interface citada é: Set ArrayList List HashMap Map Explicação: O uso de HashMap viabiliza a construção de coleções de pares chave-valor, onde as chaves não permitem duplicidade. 3a Questão Qual a função do encapsulamento? Cria novos objetos. Impedir o acesso direto a um objeto. Instancia um objeto dentro de classes private. 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. 4a Questão O comando break tem a função de: Impossibilitar o aninhamento de loops não lógicos Segmentar a execução de um loop em duas ou mais partes aninhadas Condicionar a execução de um comando de atribuição a um operador lógico Interromper a execução de um loop Estabelecer um intervalo de depuração durante a execução de um loop Explicação: O comando break é utilizado em duas situações: interromper a execução de um loop, e delimitar uma seção de switch/case. 5a Questão "Classes que não podem possuir métodos concretos, assim como também não podem possuir métodos construtores". Assinale a alternativa que indica esse tipo de classe Classes abstratas Classes concretas Classe derivadas Classes filhas Interfaces 6a Questão Analise as seguintes sentenças: I. Em Java, a plataforma Java 2 Enterprise Edition (J2EE) define um padrão para desenvolvimento de aplicações empresariais em múltiplas camadas. II. O J2SE aproveita as vantagens gerais da linguagem Java, mas roda somente no ambiente windows. III. Em Java, o modificador de acesso protected permite acesso para qualquer subclasse ou classe pertencente ao mesmo pacote da classe identificada. Das sentenças acima, apenas: III é verdadeira II é verdadeira I e II são verdadeiras I é verdadeira I e III são verdadeiras 7a Questão Em relação a conceitos de Java, marque a alternativa correta: Sempre que houver confusão entre nomes de variáveis de um método com os nomes de atributos de uma classe, devemos usar a palavra this para nos referir ao atributo. O método getter não permite esconder o formato (tipo de dado) com que um atributo está armazenado. Para que um atributo não seja modificado por outras classes, deve-se liberar o método getter daquela variável. Seja a sentença: public class Livro extends Produto. Podemos dizer que todo objeto do tipo Produto será, ao mesmo tempo, um objeto do tipo Livro. Os métodos que servem para modificar atributos são chamados de getters. 8a Questão Sobre os diferentes pacotes de java disponíveis, analise as afirmativas e selecione a alternativa correta: I) O pacote Java SE é suficiente para desenvolver todo e qualquer tipo de aplicação Java. II) É desnecessário identificar a versão da JVM do servidor de aplicações, visto que uma aplicação Java de qualquer versão sempre poderá ser executada em qualquer versão de JVM. III) O JDK é um pacote que inclui diversos elementos adicionais, a maioria deles necessários apenas para o desenvolvedor Java. Apenas uma afirmativa está correta. Apenas II e III estão corretas. Todas as afirmativas estão corretas. Apenas I e II estão corretas. Apenas I e III estão corretas. 1a Questão Em relação a um Servidor de Aplicações JAVA (Contentor JAVA), os seguintes itens descrevem o seu funcionamento básico, EXCETO: Aguarda pelas requests. Apresenta o resultado da página na máquina do cliente. Recebe a response do servlet. Repassa a request para o servlet correto. Devolve a response para o cliente que enviou a request. Explicação: O servidor de aplicações, como o GlassFish, atua apenas do lado servidor. 2a Questão Analise o código abaixo e escolha a alternativa INCORRETA: protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { String pesoT= request.getParameter("peso"); pesoT = pesoT.replaceAll(",","."); String alturaT = request.getParameter("altura"); alturaT = alturaT.replaceAll(",", "."); double peso = Double.valueOf(pesoT); double altura = Double.valueOf(alturaT); double imc = peso /(altura*altura); out.println("IMC: "+ imc + ""); } catch (Exception e) { out.println("Digite um numero"); } O cálculo é realizado através da chamada ao método IMC A possível exceção é tratada no próprio código Classes Java são utilizadas para converter os parâmetros recebidos, que chegam como String, para os tipos apropriados No código apresentado dois parâmetros, peso e altura, são recebidos através de um método do HTTP, como o POST, por exemplo. O retorno do código apresentado é uma expressão HTML Explicação: Na verdade, o "imc" trata da variável que recebe o cálculo, feito apenas com operações sequenciais, e não um método que efetuaria o cálculo. 3a Questão Em relação a um Servidor de Aplicações JAVA (Contentor JAVA), os seguintes itens descrevem o seu funcionamento básico, EXCETO: Devolve a response para o cliente que enviou a request. Mostra o resultado no browser do cliente. Repassa a request para o servlet correto. Aguarda pelas requests. Recebe a response do servlet. 4a Questão Qual é a linha completa este código? 1) public class Casdastro extends HttpServlet { 2) protected void service(HttpServletRequest request,HttpServletResponse response) { 3) ContatoDAO dao = new ContatoDAO(); 4) Contato contato = new Contato(); 5) contato.setNome(request.getParameter("nome")); 6) contato.setEndereco(request.getParameter("endereco")); 7) contato.setEmail(request.getParameter("email")); 8) dao.inserir(contato); 9) ??????? 10) rd.forward(request, response); 11) } 12) } ResponseDispatcher rd = response.getRequestDispatcher("/contato-adicionado.jsp"); Dispatcher rd = request.getDispatcher("/contato-adicionado.jsp"); RequestDispatcher rd = response.get ResponseDispatcher("/contato-adicionado.jsp"); Dispatcher rd = response.getDispatcher("/contato-adicionado.jsp"); RequestDispatcher rd = request.getRequestDispatcher("/contato-adicionado.jsp"); Explicação: Será necessário um RequestDispatcher para efetuar a ação de forward da linha seguinte. 5a QuestãoO descritor de implantação de um aplicativo web descreve as classes, os recursos e a configuração do aplicativo e como eles serão usados pelo servidor web para atender às solicitações da web. Quando o servidor web recebe uma solicitação do aplicativo, ele usa o descritor de implantação para mapear o URL da solicitação para o código que deve processá-la. O descritor de implantação em aplicações Java Servlet e Java Server Pages que utilizam o GlassFish é o web.xml server.xml apache-config.xml contexto.xml manager.xml Explicação: No arquvo web.xml podem ser definidos elementos como timeout de sessão e mapeamento de Servlets. 6a Questão Quando falamos de programação WEB, temos uma definição de uma classe na linguagem de programação Java que, dinamicamente, processa requisições e respostas, proporcionando, dessa maneira, novos recursos aos servidores. A definição, mais usada, considera-os extensões de servidores. Este módulo que estende a funcionalidade de um servidor web, através de módulos de aplicação implementados, em Java, estamos nos referindo a(o) ASP PHP Java Servlet Java Web 7a Questão São considerados contêineres JSP/Servlet: HttpServlet e Javascript Oracle e PostgreSql métodos e atributos Apache Tomcat e Glassfish classe abstrata e interface 8a Questão Para criar um Servlet é necessário: Criar uma classe que estenda a classe HttpServlet. Implementar o método HttpServletr. Implementar o método Servlet.service(Servlet.HTTP_REQUEST). Criar uma classe que implemente a interface HttpServlet. Instanciar a classe Servlet que implemente Serializable. 1a Questão Ao estudar as especificações e frameworks Java EE, um Analista de Sistemas concluiu que: o container WEB do servidor de aplicações é o responsável por gerenciar o ciclo de vida de servlets e de EJBs utilizados numa aplicação Java a utilização de Java Persistent API obriga o uso de um container EJB com Session Beans Enterprise JavaBeans é um modelo de componentes padronizado, executado no lado do cliente e que facilita a construção de aplicações distribuídas robustas STRUTS é um framework de persistência que permite o gerenciamento de dados relacionais, utilizando-se de mapeamento objeto-relacional no container WEB, uma página JSP transforma-se em um servlet, que é compilado, carregado e inicializado 2a Questão O protocolo HTTP funciona através da requisição de um recurso e uma resposta que pode devolver um arquivo que é devolvido pelo servidor Web, esta diferença é determinada pelo método informado na requisição. Informe a afirmativa incorreta dentre as listadas abaixo: O método get não permite que se faça envio de arquivos junto com os dados. O envio por post e get necessitam tratamento diferenciado quando se utiliza o Character Encoding ISSO-8859-1. Um Servlet pode receber a mesma requisição através dos dois métodos (post e get) ao mesmo tempo. O método post não possui limite de tamanho dos dados enviados, o seu limite é o tempo de resposta. O método get possui limite de caracteres no tamanho da URL chamada. Explicação: O protocolo HTTP permite o uso de GET ou POST a cada chamada, porém não na mesma requisição. 3a Questão Um Servlet é, basicamente, um programa Java que, ao receber uma requisição (request), realiza um processamento e gera uma resposta (response). Considerando o funcionamento dos Servlets, pode-se afirmar que: Jamais um Servlet aciona outro Servlet. Uma vez que um Servlet recebeu uma requisição, apenas ele deverá processá-la. Para que um Servlet possa ser executado é necessário que um contentor Java, como o TomCat ou GlassFish, esteja em funcionamento. Apesar dos Servlets serem baseados na tecnologia Java, não há a necessidade de uma Máquina Virtual Java para executá-los. Um Servlet pode apenas processar requisições do tipo "post", isto é, aquelas originadas de um formulário web. Os Servlets são executados sempre no computador do usuário, nunca no servidor da empresa. 4a Questão São apenas tipos de componentes executados em servidores Web: Beans, Swing e JVM. Beans, Swing e JSP. Beans, Servlets e J2EE. JVM, Servlets e JSP. Beans, Servlets e JSP. 5a Questão O que é Servlet ? um framework que auxilia no desenvolvimento de aplicações web uma extensão da classe JFrame uma arquitetura genérica para web que implementa várias linguagens de programação, tais como PHP e o Java uma classe Java que é carregada e executada por um servidor web um software criado pela Sun para desenvolvimento de aplicativos móveis em Java 6a Questão Para recuperar os dados enviados através de uma requisição utiliza-se: getParameter.request("nomedoparametro") parameter.getRequest("nomedoparametro") request.getParameter("nomedoparametro") parameter.Requestget("nomedoparametro") request.Parameterget("nomedoparametro") 7a Questão Qual das afirmativas abaixo é falsa com relação aos Web Servers Java? Um web service é uma aplicação distribuída, cujos componentes podem ser aplicados e executados em dispositivos distintos. Permitem tratamento diferenciado para chamadas GET e POST. O principal contexto para Web utilizado é o Tomcat. Não são capazes de gerenciar estado. Todo JSP é transformado pelo contexto em um Servlet. 8a Questão 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 III, somente. I, somente. II, somente. I, II e III. I e II, somente. 1a Questão Em termos de segurança com Java, um pacote muito útil é o java.security, onde são encontradas várias classes e interfaces relevantes para os processos de criptografia, como a destrutiva, baseada em hash de dados, utilizada na guarda de senha. Cada processo pode utilizar diferentes algoritmos, como MD5 e RSA. Caso fosse necessário efetuar Hash MD5, qual seria a sintaxe correta para obter o objeto responsável pelo cálculo deste hash? MessageDigest md = new MessageDigest5(); Cipher c = Cipher.getInstance("MessageDigest5"); Cipher c = new Cipher("MD5"); MessageDigest md = new MD5(); MessageDigest md = MessageDigest.getInstance("MD5"); 2a Questão A tecnologia JSP é extremamente útil e pode facilitar muito o desenvolvimento de uma aplicação web. Assinale a alternativa INCORRETA sobre esta tecnologia: O principal foco de uso do JSP é a criação da interface com o usuário. Todo arquivo JSP é, em sua primeira execução, convertido para um servlet. Um JSP tem a aparência de um código HTML com alguns trechos decódigo Java. Um JSP não pode trocar informações ou requisições com um Servlet. É possível usar um componente ou uma classe Java por meio de um JSP. 3a Questão Com relação às características de um Java Bean, qual alternativa abaixo está INCORRETA? Seus atributos devem ser privados. Implementa a interface java.awt.event.MouseListener Possui um construtor sem argumentos. Deve ser fornecido um "get" e "set" para cada um dos atributos. É um componente reutilizável de software. 4a Questão Com relação às tecnologias JSP, Servlet e JavaScript, responda V ou F : ( ) O método POST envia os dados como um fluxo de dados juntamente com o pacote de dados http de forma não visível ao usuário ( ) Página JSP são interpretadas e executadas pelo Container Java Web sem nenhuma transformação adicional. Ocorre apenas a carga página em código fonte. ( ) Uma Servlet para ser acionada precisa da definição da URL-pattern de acesso definida no descritor de implantação da aplicação Web ( ) É necessário o código fonte e o bytecode (.class) de uma Servlet no Container Java Web, para que a Servlet seja executada. ( )Uma Servlet somente suporta requisições na forma POST V - V - V - F - V F - F - V -V - F V - F - F - F - F V - F - V - V - V V - F - V - F - F 5a Questão Entre as tecnologias Java voltadas para a criação de aplicativos servidores encontram-se: JPA e LINQ ASP e JSP JSP e Servlet JPA e SWING ASP e SWING 6a Questão Páginas JavaServer Pages são páginas web que permitem combinar códigos Java, HTML estático, CSS, XML e JavaScript. escritas em Java, sem código HTML. interpretadas e não compiladas. transformadas em bytecode e executadas no cliente combinadas com servlets no desenvolvimento exclusivo de páginas estáticas. Explicação: Em termos gerais, o JSP permite o uso de design via XHTML além de códigos Java que são executados no servidor. 7a Questão Qual tag do pacote Core da JSTL permite que seja feita uma iteração entre os elementos de uma coleção especificada? repeat forEach loop for while Explicação: O comando forEach permite o passeio nos elementos de uma coleção de objetos. 8a Questão O ciclo de vida de Java Serves Pages (JSP) é definido em um container web, que realiza a conversão de de todo JSP em um(a): Servlet Classe Java XML Framework String de dados 1a Questão Marque a opção correta sobre o conceito JDBC: é o kit de desenvolvimento Java para implementação em dispositivos móveis framework para desenvolvimento web são metadados sobre um objeto de conexão tecnologia que permite aos programas Java interagir com os bancos de dados uma classe Java que gera tabelas de banco de dados relacionais 2a Questão Para conectar uma aplicação ao banco de dados usamos drivers do tipo JDBC. Precisamos executar scripts SQL para acessarmos bancos relacionais e mantermos as informações. Quando estamos fazendo uma consulta, utilizamos um método específico, e quando queremos nos proteger de SQL Injection escolhemos um tipo que já possui tratamento para tal. Estamos nos referindo a: executeQuery - Statement executeQuery - PreparedStatement executeSQL - Statement executeUpdate - Statement executeSQL - PreparedStatement Explicação: O comando executeQuery efetua a consulta e retorna um ResultSet. Quanto ao PreparedStatement, ele permite a criação de SQL parametrizado. 3a Questão Dada a classe abaixo, complete as lacunas de forma correta: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Principal { public static void main(String[] args) { try { _______________("org.postgresql.Driver"); Connection con = __________("jdbc:postgresql:BancoProva","aluno","prova"); Statement stm =_____________________; ResultSet rs = ________________("select * from tabela"); while(________________) { System.out.println("Valor da primeira coluna do resultado" + rs.getString(1)); } con.close(); } catch(Exception e) { System.out.println("Erro:" + e.getMessage()); } } } DriverManager.getConnection, Class.forName, rs.createStatement(),stm.executeQuery, rs.next() DriverManager.getConnection, Class.forName, rs.createStatament(),stm.executeQuery, rs.hasNext() DriverManager.getConnection, Class.forName, con.createStatement(),stm.executeQuery, rs.next() Class.forName, DriverManager.getConnection, con.createStatament(),stm.executeQuery, rs.hasNext() Class.forName, DriverManager.getConnection, con.createStatement(),stm.executeQuery, rs.next() 4a Questão 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 Statement representa uma conexão estabelecida com o Banco de Dados O executeQuery é um método da classe Connection para execução de uma consulta É possivel acessar Banco de Dados que não possuem Driver JDBC próprio através da ponte JDBC-ODBC O PreparedStatement é uma subinterface de Statement 5a Questão Qual das classes abaixo não está relacionada ao uso de banco de dados através do JDBC? HttpRequest PreparedStatement DriverManager ResultSet Connection Explicação: A classe HttpRequest está relacionada às requisições efetuadas via conexões HTTP. 6a Questão (TRE-RR/2015) A interface PreparedStatement do Java permite executar instruções SQL parametrizadas, ou seja, que primeiro são construídas e depois recebem parâmetros. Neste contexto, considere que no bloco de código abaixo con é um objeto da interface Connection que representa uma conexão com um banco de dados, estabelecida com sucesso: String sql = "insert into contatos (nome, email, endereco) values (_I_, _II_, _III_); PreparedStatement stmt = con.prepareStatement(sql); stmt.setString(1, "Paulo"); stmt.setString(2, "paulo@email.com.br"); stmt.setString(3, "Rua Vergueiro, 1567"); stmt.execute(); No bloco de código apresentado, as lacunas I, II e III devem ser preenchidas, correta e respectivamente, com: * ? "Paulo", "paulo@email.com.br", e "Rua Vergueiro, 1567" 1, 2, 3 ${1}, ${2}, ${3} 7a Questão A persistência em Banco de Dados é uma constante em programas de automação comercial. Porém certas interfaces e classes geram dúvidas para programadores iniciantes. Entres elas encontra-se a Statement. Dada as alternativas abaixo, selecione a que define Statement. Representa uma conexão a um banco de dados, a partir de uma URL JDBC recebida como parâmetro. Implementado para acessode uso geral do banco de dados. É útil quando você estiver usando as instruções SQL estáticas no tempo de execução. Não pode aceitar parâmetros. Implementado quando você deseja acessar banco de dados procedimentos armazenados. Também pode aceitar parâmetros de entrada em tempo de execução. Implementado quando você planeja usar as instruções SQL muitas vezes. Aceita parâmetros de entrada em tempo de execução. É responsável por fornecer a conexão de uma aplicação Java com o Banco de dados 8a Questão É um dos cinco elementos básicos que nos permitem manipular bancos de dados através da API JDBC. TagLib Servlets DriverManager JSP SGBD Explicação: A função primária do DriverManager é obter conexões com o banco a partir do driver JDBC e a string de conexão. 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 EntityFactory; EntityManager; save 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. 2a Questão A anotação @OneToOne será usada toda vez que quisermos indicar um relacionamento do tipo: Um para um Muitos para um Um para muitos Muitos para muitos Muitos para nenhum 3a Questão Os estados do ciclo de vida de uma instância de uma entidade, definidos na JPA 2.0, são ativo (active), inativo (inactive) e removido (removed). novo (new), gerenciado (managed), destacado (detached) e removido (removed). gerenciado (managed), temporário (temporary), permanente (permanent) e destacado (detached). novo (new), temporário (temporary), permanente (permanent) e destacado (detached). novo (new), temporário (temporary) e destacado (detached) 4a Questão Interface que representa um grupo de objetos únicos, isto é, não podem existir objetos em duplicidade dentro do conjunto: Set ArrayList List Vector Collection 5a Questão Arquivo de configuração necessário para a configuração das conexões no JPA: readme.txt manifest web.xml context.xml persistence.xml 6a Questão A anotação @ManytToOne será utilizada toda vez que quisermos indicar um relacionamento do tipo: Um para muitos Cascade Um para um Muitos para um Muitos para muitos 7a Questão Qual das seguintes anotações de JPA permite especificar que uma classe deve ser mapeada para o modelo relacional? @Column @Id @SupressWarning @GeneratedValue @Entity Explicação: Uma classe anotada com @Entity funciona como uma entidade mapeada para a estrutura relacional. 8a Questão Qual das seguintes consultas em JPQL retornaria corretamente todos os alunos que cursam o curso de "ADS", admitindo que existe um relacionamento de um para muitos entre cursos e alunos? SELECT a FROM Aluno a WHERE a.curso.nome = "ADS" SELECT a FROM Aluno a WHERE a.getCurso().getNome().equals("ADS") SELECT * FROM Aluno a INNER JOIN Curso c ON a.cod_curso = c.codigo WHERE c.nome = "ADS" SELECT a FROM Aluno a WHERE a.nome = "ADS" SELECT c FROM Curso c WHERE c.aluno.nome = "ADS" Explicação: Na instrução SELECT a FROM Aluno a WHERE a.curso.nome = "ADS" serão selecionados os alunos em que o campo de relacionamento (ManyToOne) curso apresenta o nome "ADS".