Você está na página 1de 5

Comentrios sobre as questes de Java da

Banca IADES da prova da EBSERH


Postado por Vitor Almeida em 24 janeiro 2013 s 21:16
Enviar mensagem Exibir blog
Oi pessoal, hoje saiu o gabarito da prova para a EBSERH, feita pela Banca IADES. No geral, achei
as questes bem tranquilas. Mas, tivemos alguns erros de digitao e o uso da Wikipedia como
referncia bibliogrfica, comprometendo a qualidade da banca. Vamos comentar as questes de
Java!
Analista TI IADES Processos e Desenvolvimento
Considere o cdigo Java a seguir, para respondes s questes 42 e 43.
20 public void cadastrar (Contato c) throws Exception{
21 abrirbanco();
22 String sql = INSERT INTO contato VALUES(null,???);
23 stmt = (PreparedStatement) con.preparedStatement (sql);
24 stmt.setString(1, c.getNome());
25 stmt.setString(2, c.getMail());
26 stmt.setString(3, c.getTelefone());
27 stmt.execute();
28 fecharBanco();
29 }
Questo 42
Na funo criada na linha 20, do cdigo anterior, qual o objeto instanciado?
A. Cadastrar.
B. Exeption.
C. c.
D. SQL.
E. Stmt.
Comentrios: A questo trata de um cdigo que faz uma conexo JDBC com um banco usando a
interface PreparedStatement. A questo no cobra conhecimentos de JDBC, fica apenas no bsico:
o que um objeto e como ele aparece em um cdigo Java.
No entanto, ela faz uma pequena confuso quando pergunta qual o objeto instanciado. Um objeto
instanciado (ou criado) por meio da instruo new. Assim, um objeto contatoTeste pertencente
classe Contato seria criado por meio do comando abaixo:
Contato contatoTeste = new Contato();
E no vemos nenhum new na linha 20, concordam? O que o examinador pensou ao fazer pergunta
foi: Onde temos um objeto na linha 20? E a resposta muito fcil!
Na linha 20 temos uma declarao do mtodo cadastrar que :
pblico (public), ou seja, qualquer objeto de qualquer classe pode acess-lo
diretamente;
tem um tipo de retorno void (no retorna nada);
recebe como parmetro um objeto do tipo Contato (e esta a resposta); e
pode lanar uma exceo, que deve ser tratada por quem chamar o mtodo.
Quando voc declara um parmetro em um mtodo, voc d um nome para este parmetro. O
nome usado dentro do corpo do mtodo para referenciar o argumento que foi passado para o
mtodo. No nosso mtodo cadastrar temos um parmetro chamado c. Este parmetro um objeto
da classe Contato e por isso nosso gabarito a letra C.
Gabarito: C

Questo 43
Ainda sobre o cdigo anterior correto afirmar que
A. a funo criada grava dados em uma tabela de banco de dados,
chamada contata, com 3 (trs) campos.
B. o comando execute executa a SQL da funo.
C. na funo existem dois campos do tipo String e dois do tipo INT.
D. a funo no retorna VOID.
E. O comando prepareStatement pode ser retirado da funo sem
alterar a sua sintaxe.
Comentrios: Essa a pergunta melhor elaborada e que realmente cobra um conhecimento mais
apurado do concurseiro. Vamos analisar cada uma das alternativas:
(A): J comea errando chamando a tabela de contata quando, na verdade, o nome dela na
instruo SQL que armazenada dentro da String abaixo:
String sql = INSERT INTO contato VALUES(null,???);
contato! Supondo que seja erro de digitao, ainda assim temos quatro valores, pois o comando
INSERT INTO, que um comando SQL para inserir comandos em uma tabela tem a seguinte
sintaxe (mas no era s de Java essa questo? Hehehe):
INSERT INTO nome_da_tabela VALUES(campos da tabela separados por vrgula)
E ns temos QUATRO campos: null e mais 3 ? (que ns iremos aprender j j o que significa o ? e
veremos que tem um erro de sintaxe no cdigo: t faltando as vrgulas).
(B): a nossa resposta. O mtodo execute() executa o comando SQL que foi preparado pelo objeto
com a interface PreparedStatement, simples assim!
(C): Vamos antes nos aprofundar um pouquinho nessa histria de PreparedStatement. Um objeto
que implementa esta interface serve para armazenar um comando SQL pr-compilado para que
seja usado mais eficientemente depois.
O comando abaixo:
stmt = (PreparedStatement) con.preparedStatement (sql);
Cria uma referncia chamada stmt ao objeto que retorna do mtodo
con.preparedStatement() [suponhamos que con um objeto que representa uma
conexo ativa criada no mtodo abrirbanco() da linha anterior].
O com.preparetStatement() retorna uma SQL pr-compilada e tem como parmetro
uma String com um comando SQL (no nosso caso chamada sql).
O ltimo detalhe o casting (PreparedStatement) que informa a todo mundo que essa
SQL pr-compilada, que ser referenciada por stmt, possui a interface
PreparedStatement.
Da, nosso querido programa apresenta as seguintes linhas para gente:
stmt.setString(1, c.getNome());
stmt.setString(2, c.getMail());
stmt.setString(3, c.getTelefone());
O setString da interface PreparedStatement serve para colocar uma String dentro do comando SQL
que foi passado anteriormente. O pulo do gato que o primeiro argumento a posio no SQL onde
a String, que o segundo parmetro, deve ser colocada. A posio definida pelo ? no comando
SQL. Assim, temos 3 ? e colocaremos 3 Strings (ou VARCHAR, j que no final das contas isso vai
parar dentro de um Banco de Dados) dentro do SQL.
Com a execuo das trs linhas de cdigo acima, o SQL ficaria:
INSERT INTO contato VALUES(null valor_retornado_de_c.getNome valor_retornado_de_c.getMail
valor_retornado_de_c.getTelefone);
Ento nosso SQL tem 3 campos String invalidando a afirmativa. O detalhe que temos um erro no
SQL acima, pois est faltando as vrgulas separando os campos.
(D): essa a alternativa que separa os perdidos dos que possuem o mnimo de conhecimento em
Java. Todo mundo sabe que o tipo de retorno declarado no mtodo void, ento o mtodo retorna
void. Afirmativa errada.
(E) Primeiro, no temos nenhum prepareStatement no cdigo. Temos preparedStatement que
bem diferente. Ignorando o erro de digitao da banca, lgico que no podemos tirar o
preparedStatement do cdigo, j que o mtodo de com que retorna o SQL pr-compilado.
Supondo que tenhamos um duplo erro de digitao e o examinador estivesse querendo falar em
(PreparedStatement) que o casting da interface, tambm precisamos dele, porque o mtodo
setString() dessa interface.
Gabarito: B

Analista TI Sistemas Operacionais
Questo 48
uma classe na linguagem de programao Java que, dinamicamente, processa requisies e
respostas, proporcionando, dessa maneira, novos recursos aos servidores. A definio, mais usada,
considera-os extenses de servidores. Este mdulo que estende a funcionalidade de um servidor
web atravs de mdulos de aplicao implementados, em Java, o
A. plugin.
B. servlet.
C. ASP.
D. PHP.
E. Java.
Comentrios: Questo fcil, vejamos a definio de servlet no tutorial de Java EE oficial da Oracle:
A servlet is a Java programming language class used to extend the capabilities of servers that host
applications accessed by means of a request-response programming model.
Ou: Um servlet uma classe da linguagem de programao Java usada para ampliar a capacidade
de servidores de aplicaes acessadas por meio de um modelo de programao requisio-
resposta.
Pra completar, e matar a questo, vamos Wikipedia:
Servlet (servidorzinho em traduo livre) um componente como um servidor, que gera dados
HTML e XML para a camada de apresentao de uma aplicao Web. basicamente uma classe
na linguagem de programao Java que dinamicamente processa requisies e respostas,
proporcionando dessa maneira novos recursos aos servidores. A definio mais usada considera-os
extenses de servidores. Servlet um mdulo que estende a funcionalidade de um servidor Web,
atravs de mdulos de aplicao implementados em Java.
Ser que o examinador copiou da Wikipedia? Dvidas?
Gabarito: B

Analista TI Suporte e Redes
Questo 33
Sobre o Apache Tomcat, assinale a alternativa correta.
A. Trata-se de um servidor de aplicaes JEE, muito utilizado por sites
elaborados em JAVA.
B. um servidor de controle de aeronaves de combate, tendo como
base o helicptero de ataque Apache e o caa F14 Tomcat.
C. Consiste em uma interface de configurao de pginas Apache.
D. um programa desenvolvido em Java e que mede parmetros de
pginas web.
E. Trata-se de um servidor de aplicaes ASP, que torna alguns sites
compatveis com o servidor de pginas Apache.
Comentrios: Isso comdia ? Hauhauhauahuahau Essa letra (B) extremamente ridcula!
Todo mundo sabe que o Apache Tomcat um servidor de aplicaes JEE. Provavelmente, o
examinador destilou seus conhecimentos ao escrever sozinho, sem a ajuda de ningum, a
alternativa A, que a resposta. Da Wikipedia no foi (rapaz, t at legal a definio da WIkipedia):
O Tomcat um servidor web Java, mais especificamente, um container de servlets. O Tomcat um
servidor de aplicaes JEE, porm no um servidor de EJBs. Desenvolvido pela Apache Software
Foundation, distribudo como software livre dentro do conceituado projeto Apache Jakarta, sendo
oficialmente endossado pela Sun como a implementao de referncia para as tecnologias Java
Servlet e JavaServer Pages (JSP). Ele cobre parte da especificao J2EE com tecnologias como
servlet e JSP, e tecnologias de apoio relacionadas como Realms e segurana, JNDI Resources e
JDBC DataSources.
As outras alternativas so absurdas, o que facilitou bastante a vida do concurseiro.
Gabarito: A

Você também pode gostar