Buscar

43932026-simulado-caelum

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1. Sim ou Não? O código abaixo compila e roda sem 
problemas? int[][] a = new int[10][10]; for(int[] is : a)
{ for(int i : is){ System.out.println(i); } } 
Sim 
Não 
Explicação sobre a resposta
Um novo tipo de for foi adicionado ao java 5.0, o 'enhanced for'. Com ele, os programadores não 
precisam mais depender de índices para percorrer um array ou uma 'Collection'. No caso do 
exercício temos um array multidimensional. No primeiro 'enhanced for' percorre uma array de array, 
e, no segundo for, ele percorre por todos os elementos da array passada.
2. Qual é o resultado de compilar e executar o código 
abaixo? public class Carro { public static void 
main(String[] a) { new Carro().anda(); } public static void 
anda() { System.out.println("andando...."); para(); } 
public void para(){ System.out.println("parando...."); } } 
O código não compila. O construtor Carro() não foi definido. 
O código não compila. Não podemos chamar métodos estáticos em instâncias de objetos. 
O código não compila. Métodos estáticos não devem chamar métodos não estáticos. 
O código roda e imprime "andando...." "parando...." 
Explicação sobre a resposta
Um método estático só pode chamar diretamente outros métodos estáticos ou variáveis estáticas.
3. Qual o resultado ao tentar compilar e rodar este 
programa? public class Fors{ static int i; public static void 
main(String args[]){ for(i=0;i<3;i++)
{ System.out.print(i); } for(int i=2; i<3;i++)
{ System.out.print(i); } int i; for(i=0;i<2;i++)
{ System.out.print(i); } System.out.print(Fors.i); } } 
Imprime: 0122010 
Imprime: 0122012 
Imprime: 0122013 
Erro de compilação no primeiro for 
Erro de compilação no segundo for 
Erro de compilação no terceiro for 
Erro de tempo de execução 
Nenhum dos anteriores 
Explicação sobre a resposta
Não existe motivo para ocorrer um erro de compilação, portanto podemos simular a execução do 
programa. O primeiro for inicializa a variável estática i com 0 e roda enquanto i for menor que 3, 
isto é: imprime i de 0 até 2, sai quando i for 3. O i estático fica então valendo 3. Já o segunda for 
declara uma nova variável i e só será executada para o valor 2. Portanto imprime o valor 2. O 
terceiro for utiliza uma outra variável i interna ao método para imprimir 0 e 1. A variável interna ao 
método fica com valor final 2. Por fim, o valor da variável estática i é impresso (3). Portanto a saída 
é: 0122013.
4. Considere o código abaixo, com cada classe escrita em 
arquivos separados chamados Pai.java, Filho.java e 
Teste.java respectivamente: class Pai { Pai() 
{ System.out.println("Pai"); } Pai(int valor) 
{ System.out.println("Pai int: " + valor); } } class Filho 
extends Pai { Filho() { System.out.println("Filho"); } 
Filho(int valor) { super(valor); this(); } } public class Teste 
{ public static void main(String[] args) { Pai p = new Pai(); 
Filho primeiro = new Filho(); } } Quais das seguintes 
afirmações são verdadeiras? 
O código não compila. 
O código compila, imprime "Pai", "Filho" e depois para com um erro de execução. 
O código compila e roda, imprimindo "Pai", "Filho" e por último "Pai". 
O código compila e roda, imprimindo "Pai" e por último "Filho". 
O código compila e roda, imprimindo "Pai", "Pai" e por último "Filho". 
Explicação sobre a resposta
Todo construtor que não invoca this() ou super() possui por padrão uma invocação a super() sem 
argumentos. No caso de chamar explicitamente this() ou super(), esta deve ser a primeira linha do 
construtor, portanto um construtor só pode chamar explicitamente this() ou super(), mas não os dois 
ao mesmo tempo. O resultado é que a classe Filho não compila. categoria: declaration and access 
control
5. Qual a saída do programa a seguir ao executá-lo? class 
NormalException extends Exception{} class 
EspecialException extends RuntimeException{} public 
class G{ public void metodo() throws 
NormalException{ throw new NormalException(); } public 
static void main(String args[]){ int a,b,c,d; a=b=c=d=0; 
try{ new G().metodo(); a++; }catch(NormalException e)
{ b++; }catch(EspecialException e){ c++; }finally{ d++; } 
System.out.println(a+","+b+","+c+","+d); } } 
O programa não compila. 
Saída: 1,0,0,1 
Sáida: 1,1,0,1 
Saída: 0,1,0,0 
Saída: 1,1,1,1 
Saída: 0,1,0,1 
Explicação sobre a resposta
Uma vez que o método main cria um objeto de classe G e chama seu método 'metodo', esta 
chamada joga uma exception do tipo NormalException. Portanto, o código a++ não será executado, 
e sim o b++. Após executar o código do bloco catch corresppondente, o bloco finally será 
executado, somando um à variável d. Lembre-se que um bloco finally é sempre executado não 
importanto se uma exceção for lançada ou não.
6. O que podemos dizer sobre o código abaixo? class 
ClasseMae{ protected void meuMetodo(){ } } class Outra 
extends ClasseMae{ public void meuMetodo() throws 
SQLException{ } } 
O código compila. 
O código não compila: não podemos reescrever um método protected como public. 
O código não compila: o método 'meuMetodo' na classe 'Outra' não lança nunca SQLException, 
então não se pode declarar que ele lança SQLException. 
O código não compila: não podemos reescrever um método que não lança exceções do tipo 
checked com um que lança exceções do tipo checked. 
Explicação sobre a resposta
É necessário estar bem acostumado com as regras de reescrita (override) de métodos. Quando você 
reescreve um método, sempre pode aumentar sua visibilidade, o que não poderia era reescrever um 
método public como protected. Sobre que exceções um método reescrito pode lançar: apenas as 
mesmas exceções ou menos que as declaradas pelo método na superclasse onde foi escrita pela 
última vez. Isso só vale para checked exceptions. Se as exceções adicionais forem 
RuntimeExceptions ou Errors, essas pode m ser declaradas mesmo que não tenham sido declaradas 
no método da superclasse. Essas duas classes estão quebrando essa última regra: SQLException não 
está sendo declarada no throws da classe ClasseMae.
7. O que acontece ao compilar e executar o programa a 
seguir? public class Fundamentos{ public static void 
main(String args[]){ int i; while(i<10){ i++; 
System.out.println(i); } } } 
O programa não compila. 
O programa imprime de 0 a 9. 
O programa imprime de 0 a 10 
O programa imprime de 1 a 9 
O programa imprime de 1 a 10 
Explicação sobre a resposta
Variáveis locais (variáveis declaradas dentro de métodos, também conhecidas como variáveis 
temporárias ou de pilha) não são inicializadas automaticamente. Você precisa sempre inicializar 
essa variáveis antes de utilizar seus valores. Esse programa não compila, pois a variáveis antes de 
utilizar seus valores. Esse programa não compila, pois a variável i não foi inicializada e estamos 
usando-a no while.
8. Considere o código abaixo: for (int i = 0; i < 3; i++) { for 
(int j = 1; j < 3; j++) { if (i % j == 0) { continue; } else 
{ System.out.println("i = " + i + ", j = " + j); } } } Qual 
dessas linhas será mostrada na tela? 
i = 0, j = 1 
i = 0, j = 2 
i = 1, j = 1 
i = 1, j = 2 
i = 2, j = 1 
i = 2, j = 2 
Explicação sobre a resposta
Os valores de 'i' vão variar de 0 até 2 e os de 'j' vão variar de 1 até dois. Sempre que i valor 0 ou 2 a 
condição i%j==0 será verdade, e quando 'i' valer 1 e 'j' também valer 1 a condição i%j==0 também 
será verdade, restando apenas a impressão de i valendo 1 e j valendo 2
9. Qual resposta é verdadeira em relação ao código 
abaixo? class Tipo { Tipo(String texto) 
{ this(Integer.parseInt(texto)); System.out.println("Texto: 
" + texto); } Tipo(int valor) { this("" + valor); 
System.out.println("Valor " + valor); } } public class Teste 
{ public static void main(String args[]) { Tipo tipo = new 
Tipo("15"); } } 
O código compila e roda indefinitivamente, sem imprimir nada. 
O código compila e roda, imprimindo "Texto: 15" uma única vez e termina. 
O código compila e roda indefinitivamente, revezando a impressão entre "Texto: 15" e "Valor: 
15". 
O código não compila pois detecta o loop. 
Explicação sobrea resposta
Nem sempre o compilador detecta problemas de loops entre construtores. Portanto, deve-se 
considerar que o código compila e roda indefinidamente, até ocorrer um erro do tipo 
StackOverflowError.
10. Quais das seguintes afirmações sobre o código abaixo 
são verdadeiras? public class Controle { public 
Controle(String s) { } private Controle(int i) { } protected 
Controle(double d) { } Controle(Controle principal) { } } 
O código compila sem problemas 
O construtor que recebe uma variável do tipo Controle não pode ser chamado por classes top-
level de outro pacote 
Uma classe não pode ter mais de um construtor portanto o código não compila 
Não existem construtores privados portanto o código não compila 
O construtor que recebe uma variável do tipo Controle é chamado de destrutor 
Construtores de classes públicas devem ser públicos portanto o código não compila 
Explicação sobre a resposta
Um construtor pode ter os quatro tipos de modificadores de acesso; não existe um construtor 
especial do tipo de destruição, somente o método finalize; membros sem modificadores de uma 
classe só podem ser acessado sno mesmo pacote, portanto não podem ser acessados por outros 
pacotes. categoria: constructors e subclassing 
11. Qual resposta é verdadeira em relação ao código 
abaixo? class Pai { public Pai() 
{ System.out.println("Construtor do pai"); } } class Filho 
extends Pai { Filho() { System.out.println("Construtor do 
filho"); super(); } } public class Teste { public static void 
main(String[] args) { Filho filho = new Filho(); } } 
O código não compila. 
O código compila e roda, imprimindo primeiro o "Construtor do pai" e depois o "Construtor do 
filho" 
O código compila e roda, imprimindo somente "Construtor do filho" 
O código compila e roda, imprimindo primeiro o "Costrutor do filho" e depois o "Construtor do 
pai" 
Explicação sobre a resposta
A palavra chave super que invoca o construtor do pai explicitamente deve ser a primeira instrução 
de um construtor, portanto o código da classe Filho não compila. categoria: declarações e controle 
de acesso
12. Observe o código abaixo: class A{ void metodo(int a)
{} } class B extends A{ } Qual dos códigos abaixo pode ser 
adicionado na linha 06? 
private void metodo(int a){} 
public int metodo(int a){return a} 
public void metodo(int a){} 
public void metodo(float a){} 
void metodo(int b){} 
Explicação sobre a resposta
A primeira resposta não pode ser pois você não pode reduzir a visibilidade de uma método 
sobrescrito. A segunda resposta não pode ser pois o tipo de retorno só pode ser diferente no Java 5.0 
caso o novo retorno estenda o retorno da classe mãe (retorno de tipo covariante). A terceira resposta 
apenas aumenta a visibilidade do método, sem maiores problemas. A quarta resposta não caracteriza 
sobrescrita de método e sim sobrecarga, pois muda os parâmetros recebidos. E a quinta resposta 
apenas muda o nome do parâmetro e não o seu tipo, por isso também não há problemas.
13. Considere o código abaixo: int i=1,j=1; externo: for (i = 
1; i <= 5; i++) { for (j = 1; j <= 5; j++) { if (i+j==5) { break 
externo; } } } System.out.println(i+j); Qual será o 
resultado apresentado na tela? 
10 
8 
12 
6 
5 
4 
Explicação sobre a resposta
O break aprensentado se refere ao for com o label 'externo', ou seja quando ele for executado, não 
parará o for mais interno como normalmente ocorre, mas sim aquele indicado pelo break, ou seja o 
'externo'. A condição de parada do for é que i mais j seja igual a cinco. i varia de 1 até 5 e j também, 
ou seja no primeiro laço, i vai valer i e j vai variar de 1 até cinco. Quando j valer 4 a condição de 
parada será verdadeira, causando a parada do for 'externo', partindo para a próxima instrução que é 
mostrar na tela a soma de i com j.
14. Considere o seguinte código: public class Teste{ public 
static void main(){ System.out.println("teste"); } } O que 
podemos dizer sobre ele? 
O programa não compila. 
O programa compila, mas dá erro de execução. 
O programa compila, executa e imprime "teste". 
Explicação sobre a resposta
Este programa compila perfeitamente. Mas no momento de tentar executar a classe Teste, a virtual 
machine tenta procurar um método main estático, que seja público, retorne void, e receba como 
parâmetro uma array de Strings. Ela não vai encontrar esse método, pois o main acima não recebe 
uma array de Strings como parâmetro. Ou seja, o programa não executa, lançando uma exceção.
15. O que acontece ao compilar e rodar o código abaixo? 
public class Teste { public static void main(String [] args) 
{ int array[] = new int[]{ 1, 2, 3, 4}; for(int i = 1; i < 
array.length; i++) { System.out.println("Posicao " + i + " 
com valor " + array[i]); } } } 
O código não compila 
O código compila mas ao rodar acontece uma ArrayIndexOutOfBoundsException. 
O código compila e roda, imprimindo Posicao 1 com valor 1 Posicao 2 com valor 2 Posicao 3 
com valor 3 Posicao 4 com valor 4 
O código compila e roda, imprimindo Posicao 0 com valor Posicao 1 com valor 1 Posicao 2 com 
valor 2 Posicao 3 com valor 3 
O código compila e roda, imprimindo Posicao 0 com valor 1 Posicao 1 com valor 2 Posicao 2 
com valor 3 Posicao 3 com valor 4 
O código compila e roda, imprimindo Posicao 1 com valor 2 Posicao 2 com valor 3 Posicao 3 
com valor 4 
O código compila e roda, imprimindo Posicao 1 com valor 1 Posicao 2 com valor 2 Posicao 3 
com valor 3 
Explicação sobre a resposta
O programa compila e roda. É importante lembrar que a array começa com o índice 0, portanto, 
começando na segunda posição, para o índice 1 ele imprime 2, para 2 imprime 3 e para 3 imprime 
4.
16. Quais das maneiras abaixo são declarações e 
inicializações válidas para uma array? 
int[] array = new int[10]; 
int array[] = new int[10]; 
int[] array = new int[]; 
int array[] = new int[]; 
int[] array = new int[2]{1, 2}; 
int[] array = new int[]{1, 2}; 
int[] array = int[10]; 
int[] array = new int[1, 2, 3]; 
int array[] = new int[1, 2, 3]; 
Explicação sobre a resposta
Os colchetes na declaração de um array podem vir antes ou depois do nome da variável. Já na hora 
de inicializar uma array você deve dizer o tamanho dela OU os elementos que ela possui. Você não 
pode definir as duas coisas, ou uma, ou outra.
17. Que situação o código abaixo indica? class 
Carro{ String cor = "branco"; void mudaCor(String cor)
{ this.cor = cor; } } class Pessoa{ final Carro carro = new 
Carro(); void mudaCorDoCarro(String cor)
{ carro.mudaCor(cor); } } 
Que uma pessoa pode trocar de carro, mas um carro não pode trocar de cor. 
Que uma pessoa não pode trocar de carro e não pode trocar a cor do carro. 
Que uma pessoa pode trocar de carro e pode trocar a cor do carro. 
Que uma pessoa não pode trocar de carro, mas pode trocar a cor do carro. 
Explicação sobre a resposta
Apenas a referência para o objeto carro é final, ou seja você só pode mexer nos atributos do carro, 
desde que você não troque a referência para o carro.
18. O que acontece ao tentarmos compilar e rodar o 
programa Teste? abstract class Animal{ } class Mamifero 
extends Animal{ } class Anfibio extends Animal{ } public 
class Teste{ public static void main(String[] args){ Animal 
animal = new Mamifero(); Anfibio anfibio = (Anfibio) 
animal; } } 
O programa não compila, erro na linha Animal animal = new Mamifero(); 
O programa não compila, erro na linha Anfibio anfibio = (Anfibio) animal; 
O programa compila, mas lança exception na linha Animal animal = new Mamifero(); 
O programa compila, mas lança exception na linha Anfibio anfibio = (Anfibio) animal; 
O programa compila e roda normalmente, sem lançar exceptions. 
Explicação sobre a resposta
Como Mamifero estende Animal, podemos referenciar um mamifero como uma animal. Essa linha 
compila e também roda sem problemas. Quando tentamos atribuir um animal para uma referência 
de um anfibio, isso nem sempre é verdade, isto é, nem todo animal é um anfibio, O que nos força a 
fazer o cast. Esta linha também compila, poisexiste a chance de um animal ser um anfibio, mas na 
hora de execução, sabemos que isso não é verdade, e uma exceção do tipo ClassCastExeception 
será lançada.
19. Qual das seguintes declarações de classes é valida? 
Considere que nenhuma das classes são aninhadas e cada 
uma está dentro de um arquivo '.java' com o mesmo nome 
que a classe. 
protected class Classe{} 
public abstract class Classe{} 
private class Classe{} 
static class Classe{} 
synchronized Classe{} 
Explicação sobre a resposta
Apenas classes aninhadas (nested) podem ser declaradas privadas, protegidas, ou estáticas. o 
modificador synchronized não pode ser usado na declaração de uma classe, apenas em métodos ou 
declaração de blocos.
20. Qual resposta é verdadeira em relação ao código 
abaixo? class MeuTipo { MeuTipo(String s) { } MeuTipo() 
{ } } class TipoFilho extends MeuTipo { } 
O código compila. A classe TipoFilho herdou os dois construtores da classe pai. 
O código não compila pois a classe TipoFilho não definiu nenhum construtor. 
O código compila. A classe TipoFilho não pode ser instanciada pois não possui construtores. 
O código compila. A classe TipoFilho possui um único construtor sem argumentos. 
Explicação sobre a resposta
É possível não definir nenhum construtor pois toda classe escrita de tal maneira possui o construtor 
padrão, sem argumentos. Construtores não são métodos sob o conceito de orientação a objetos e não 
existe herança de construtores.
21. Observe o código abaixo: class Fluxo{ public static void 
main(String args[]) { char c = 69; switch(c) { case 1 : 
System.out.print("1 "); default: System.out.print("default 
"); case 2 : System.out.print("2 "); case 3 : 
System.out.print("3 "); case 4 : System.out.print("4 
"); } } } Qual é o resultado apresentado na tela? 
Não compila 
Compila mas não roda 
Compila e roda, mas não imprime nada 
default 2 3 4 
default 
1 default 2 3 4 
Explicação sobre a resposta
Como o valor de c não é igual a nenhum dos valores dos cases, a execução pula para default. Como 
não há break, a execução continua depois de executar o código de default.
22. Ao compilar e executar o código abaixo, o que 
acontece? public class Teste { public static void 
main(String args[]) { String s1 = "a"; String s2 = "a"; s1 
+= "bc"; System.out.println(s1); 
System.out.println(s2); } } 
O código não compila. 
O código compila e imprime "abc", depois "abc". 
O código compila e imprime "abc", depois "a". 
O código compila e imprime "a", depois "a". 
Explicação sobre a resposta
O exercício não possui nenhuma "pegadinha". Ele simplesmente concatena a string "bc" na string 
"a" e atribui o resultado a variável s1. Como a variável s2 referencia a string "a", nada é alterado 
nela. O exercício tenta questionar a existência do pool de strings, onde o comportamento é o 
esperado, imprimir "abc" e depois "a", mas o programador iniciante pode se questionar se as duas 
variáveis são alteradas.
23. Observe o código a seguir: import java.io.*; class 
FileTeste{ public static void main(String args[]) { try 
{ System.out.print("tenta "); File f = new File("teste.txt"); 
return; } catch (Exception e) { System.out.print("excecao 
"); } finally { System.out.print("finalmente"); } } } Assuma 
que o arquivo "teste.txt" não existe. Qual será o resultado 
apresentado na tela? 
Compila mas não roda 
Não compila 
tenta excecao finalmente 
tenta feito finalmente 
tenta finalmente 
Explicação sobre a resposta
Você pode executar o return a partir de um método que "retorna" o tipo void. Instanciar java.io.File 
não significa verificar se o arquivo existe ou não.
24. Qual o resultado de compilar e executar o código 
abaixo? public class Teste { public static void main(String 
[] args) { boolean b = false; if(b = false) 
{ System.out.println("B verdadeiro"); } else 
{ System.out.println("B falso"); } } } 
O código não compila pois existe um problema com o if. 
O código compila e na hora de executar imprime "B falso" 
O código compila e na hora de executar imprime "B verdadeiro" 
Explicação sobre a resposta
O código compila. Na hora de executar, o if primeiro atribui o valor falso a variável boolean b, e 
depois verifica se tal valor é verdadeiro ou falso. Uma vez que ele é falso o resultado é "B falso". 
Cuidado pois é só com boolean que funciona o if com atribuição de maneira tão "simples".
25. O que acontece ao rodarmos a classe Teste abaixo? 
class Funcionario{ public void mostraSalario()
{ System.out.println("meu salário: 1.000,00"); } } class 
Diretor extends Funcionario{ public void mostraSalario()
{ System.out.println("meu salário: 5.000,00"); } } public 
class Teste{ public static void main(String[] args)
{ Funcionario funcionario = new Diretor(); 
funcionario.mostraSalario(); } } 
O programa não compila, erro na linha Funcionario funcionario = new Diretor(); 
O programa compila, roda e mostra "meu salário: 1.000,00". 
O programa compila, roda e mostra "meu salário: 5.000,00". 
O programa compila, roda mas não mostra nada 
Explicação sobre a resposta
O programa compila sem problemas. Podemos referenciar um Diretor como sendo um Funcionario, 
pois Diretor estende Funcionario. Essa questão envolve um conceito fundamental do Java: todos os 
métodos de instância (não estáticos) são resolvidos em tempo de execução (invocação virtual de 
método). Isso quer dizer que o método chamado vai depender do tipo real do objeto o qual é 
referenciado pela variável funcionario. Como funcionario se referencia a um objeto do tipo Diretor, 
o método da classe Diretor é o que vai ser chamado, pois ele foi reescrito (overriden).
26. O que acontecerá com o código abaixo? public class 
array { public static void main(String args[]) { int[][] a = 
new int[10][10]; for(int[] is : a){ for(int i : is)
{ System.out.println(i); } } } } 
Erro de compilação na linha 6 
Imprimirá o número zero 10 vezes 
Imprimirá o número zero 100 vezes 
Erro de execução (NullPointerException) 
Erro de compilação na linha 3 
Explicação sobre a resposta
Elementos do array serão inicializados com o valor padrão, nesse caso "0".
27. O que imprime esse código? public class 
Retorno{ public static void main(String[] args) 
{ System.out.println(Retorno.test()); } public static int 
test() { int a = 3; try { return a; } catch (Exception e) 
{ return -1; } finally { a = 0; return a; } } } 
30 
0 
-1 
3 
Não compila 
Explicação sobre a resposta
Mesmo com return no "try", o fluxo acessa o "finally".
28. Qual será o resultado de tentar compilar e executar o 
código abaixo? public class Wrapper { public static void 
main(String[] args) { doIt(new Byte("3")); } public static 
void doIt(long valor) { System.out.println("doIt com 
long"); } public static void doIt(int valor) 
{ System.out.println("doIt com int"); } public static void 
doIt(Long valor) { System.out.println("doIt com Long"); } 
public static void doIt(Integer valor) 
{ System.out.println("doIt com Integer"); } } 
doIt com Integer 
doIt com Long 
doIt com int 
doIt com long 
Não compila. 
Explicação sobre a resposta
"new Byte("3")" é incompatível com o argumento dos métodos "doIt(Integer valor)" e "doIt(Long 
valor)". Então, o unboxing acontece (new Byte("3").byteValue()), que é compatível com "doIt(int 
valor)". Sem o método "doIt(int valor)" seria chamado o método doIt(long value).
29. Qual o resultado de tentar compilar e executar o código 
abaixo dentro de um método main? String a = "String"; 
int b = 3; int c = 7; System.out.println(a + b + c + a); 
Não compila 
Lança uma exceção 
String10String 
String37String 
StringString 
Explicação sobre a resposta
O Java processa a expressão "a + b + c + a" da esquerda para a direita. Na primeira soma, como a é 
String, b é convertido para String e o resultado da soma é um String. O mesmo ocorre com as outras 
somas.
30. O que acontece com o código abaixo? class 
swbyte{ public static void main(String args[]){ byte x = 3; 
switch(x){ case 1: System.out.println("x is equal to 1"); 
case 128: System.out.println("x eh 128");} } } 
Compila sem problemas 
Compila, mas não roda 
Não compila 
Explicação sobre a resposta
O valor do case 128 é um valor muito grande para um byte. O compilador detecta isso e não 
compila o código.
31. Qual o resultado da compilação e execução do seguinte 
código? public class Test { public static void main(String 
args[ ] ) { A x = new A("x"); A y = new A("y"); 
System.out.println(y.name(x)); } } class A { private String 
name; A(String a) { name = a; } String name(A a) { return 
a.name; } } 
Imprime "null" 
Imprime "y" 
Imprime "x" 
Um erro em tempo de execução 
Um erro de compilação não permite sua execução. 
Explicação sobre a resposta
Esse teste mostra a possibilidade de acesso à um atributo private que duas instâncias diferentes da 
mesma classe compartilham.
32. Qual será a saída do código abaixo? import java.util.*; 
class A{ int iSimples; Integer iObjeto; String sObjeto; 
public static void main(String str[]){ A a = new A(); 
System.out.println(a.iSimples); 
System.out.println(a.iObjeto); 
System.out.println(a.sObjeto); } } 
null 0 0 
0 null null 
null null null 
0 0 0 
O código não compilará 
Explicação sobre a resposta
Não há explicação escrita para esta resposta
33. Qual será o resultado? public class Boxing { public 
static void main(String[] args) { doIt(new Byte("3")); } 
public static void doIt(Short valor) 
{ System.out.println("doIt com Short"); } public static 
void doIt(Long valor) { System.out.println("doIt com 
Long"); } public static void doIt(Integer valor) 
{ System.out.println("doIt com Integer"); } } 
doIt com Short 
doIt com Integer 
doIt com Long 
Não compila 
Explicação sobre a resposta
Um objeto da classe Byte não é um Integer, Long ou Short. Unboxing não ajuda, porque um byte 
também é incompítavel.
34. Qual será o resultado? public class Labels { public 
static void main(String[] args) { outer: for (int a = 0; a < 5; 
a++) { inner: for (int i = 0; i < 5; i++) { if(i == 1) continue 
inner; if (i == 3) break outer; System.out.print(i); } } } } 
00000 
0202020202 
024502450245024502450245 
02 
0 
Explicação sobre a resposta
Não há explicação escrita para esta resposta
35. O que acontece ao compilar e executar o programa a 
seguir? class Out { static{ System.out.print("6");} 
{System.out.print("5");} Out() {System.out.print("4");} } 
class Outer extends Out { static {System.out.print("3");} 
{System.out.print("2");} Outer() 
{System.out.println("1");} public static void 
main(String ...args) { new Outer(); } } 
O programa imprime: 654321 
O programa imprime: 635421 
O programa imprime: 364321 
O programa imprime: 645231 
Programa não compila. 
Explicação sobre a resposta
Os construtores estáticos são executados uma única vez, quando as classes são carregadas na 
máquina virtual. Na instanciação de um objeto da classe, primeiro é executado o bloco de 
inicialização e, em seguida, o construtor. Por fim, a classe mãe sempre é construída antes da classe 
filha.
36. Qual será o resultado da execução do código abaixo? 
public class Animals { static class Animal{}; static class 
Dog extends Animal{}; static class Cat extends Animal{}; 
static void test(Animal[] as, Animal a) { as[0] = a; } public 
static void main(String[] args) { Dog[] as = {new Dog(),new 
Dog(), new Dog()}; test(as, new Cat()); 
System.out.println(as.length); } } 
Exceção 
4 
3 
2 
Não compila 
Explicação sobre a resposta
Num array do tipo Dog você não pode inserir um objeto Cat.
37. Quais das afirmações sobre o código abaixo são 
verdadeiras? class Teste { int test() {return null;} int 
test(int x) {return 0;} } class TesteFilho extends Teste 
{ protected int test() {return 0;} int test(long x) {return 
0;} } 
Código não compila por causa de um erro na linha 7. 
Código não compila por causa de um erro na linha 6. 
Código não compila por causa de um erro na linha 3. 
Código não compila por causa de um erro na linha 2. 
Código compila. 
Explicação sobre a resposta
Não há explicação escrita para esta resposta
38. O que o código abaixo, ao ser executado, vai imprimir? 
System.out.println(1+2+""+2+1); 
Não compila 
1221 
6 
321 
33 
Não roda 
Explicação sobre a resposta
Somente depois do primeiro "" o tipo do argumento passa a ser String
39. O que será impresso ao executar o código abaixo? 
public class TesteFor { public static void main( String 
args[] ) { int i, soma=0; for( i=1; i<=5; i++ ) { if(i==4) 
continue; soma += i; } System.out.println( soma ); } } 
13 
11 
2 
3 
Explicação sobre a resposta
Não há explicação escrita para esta resposta
40. Dado o código abaixo, quais fragmentos de código 
compilam? interface Base { boolean m1(); byte m2( short 
s); } 
interface Base2 implements Base{} 
abstract class Class2 extends Base { public boolean m1(){ return true; } } 
abstract class Class2 implements Base{} 
abstract class Class2 implements Base { public boolean m1(){ return true; } } 
Explicação sobre a resposta
Classes abstratas não precisam implementar nehum método de sua interface.
41. O que será impresso ao executar essa classe? class Teste 
{ public static void main(String[] args) 
{ System.out.println("Inicio do main!!"); try 
{ metodo1(); } catch(ArrayIndexOutOfBoundsException 
e) { System.out.println("Erro: " + e); } 
System.out.println("Fim do main!!"); } public static void 
metodo1() { System.out.println("Inicio do medotodo1!!"); 
metodo2(); System.out.println("Fim do medotodo1!!"); } 
public static void metodo2() { System.out.println("Inicio 
do medotodo2!!"); int[] array = new int[10]; for (int i=0; i 
< 15; i+=++i) { array[i] = i; System.out.println(i); } 
System.out.println("Fim do medotodo2!!"); } } 
Todas as Strings de início e fim de método 
"Inicio main" e "Fim main" 
"Inicio main", seguido de uma ArrayIndexOutOfBoundsException 
Todas as Strings de início de método, os valores de i de 0 a 9, a mensagem de erro e "Fim main" 
O código não compila 
Explicação sobre a resposta
Não há explicação escrita para esta resposta
42. Qual é o resultado de compilar e executar o código 
abaixo? class A{ int val = 010; public static void 
main(String[] args){ A a = new A(); int val = a.val; 
a.metodo(val); System.out.print(" "+(val*2)); } void 
metodo(int val){val-=2; System.out.print(this.val);} } 
O código não compila. 
8 16 
8 20 
Ocorre um erro em tempo de execução. 
10 20 
Explicação sobre a resposta
A variável de instância de A recebe um literal inteiro, mas em base octal (010 em octal == 8 em 
decimal). Ao passar a variável local "val" para a.metodo(), o valor dela não é alterado. Porém, a 
multiplicação de "val" por 2 resultará em 16 pelo fato de "val" ser uma cópia de a.val e a.val ser 
igual a 8.
43. Qual é a saída deste código? System.out.println(1 > 2); 
"false" 
"true" 
Este código não compila 
3 patinhos foram passear... 
Explicação sobre a resposta
Não há explicação escrita para esta resposta
44. O que devemos adicionar a ClasseA para que o código 
abaixo possa compilar sem erros? public class 
ClasseA{ public ClasseB b = new ClasseB(); } class 
ClasseB{ ClasseB() trhows 
Exception{ System.out.println("Construtor da 
ClasseB"); } } 
Um construtor da ClasseA que não receba parâmetros e lance uma Exception. 
Não há a necessidade de adicionar nada. A classe compilará perfeitamente. 
Explicação sobre a resposta
Como o construtor da classeB lança uma Exception, deveríamos tratá-la na execução do construtor, 
mas este método é executado na área de declaração de atributos. Com isso a declaração de um bloco 
try/catch torna-se inviável, pois não estamos usando um bloco de inicialização. Ao declarar um 
construtor que lance uma Exception para a ClasseB, estamos passando a responsabilidade de tratar a 
Exception para a classe que instanciar um objeto da ClasseA.
45. Qual o resultado de tentar compilar e executar o código 
abaixo? public class TestByte { public static void 
main(String[] args) { byte b =1; byte b2 = 3; byte b3 = b + 
b2; System.out.println(b3); } } 
4 
0.045 
Erro de execução 
Erro de compilação 
NaN 
Explicaçãosobre a resposta
O compilador entende que soma de dois bytes ou outros tipos menores resulta sempre um int, que 
não cabe em um tipo byte.
46. Analise o seguinte código. Qual o resultado de tentar 
compilá-lo e executá-lo? Arquivo A.java public class A 
extends B{ public String imprime() throws SQLException{ 
return "classe A"; } public static void main(String... a) 
throws Exception{ B b = new A(); 
System.out.println(b.imprime()); } } Arquivo B.java public 
class B{ public String imprime() throws Exception{ return 
"classe B"; } } 
Imprime "classe A" 
Imprime "classe B" 
Não compila 
Lança um erro do tipo SQLException 
Explicação sobre a resposta
Na invocação de métodos não-estáticos, como é o caso, o método chamado é da classe do objeto, 
não da referência a ele.
47. Por que o código abaixo não compila? public class A 
implements B{ public void nome() { } } public interface B 
extends C{ void nome(); } public interface C { void 
nomes(); } 
A classe não implementa as duas interfaces (implements B, C) 
Compila normalmente 
Interface não pode extender outra interface 
A classe tem que assinar o método da interface C 
Explicação sobre a resposta
Indiretamente a classe A implementa as interfaces B e C. Por isso, ela deve implementar todos os 
métodos das das interfaces(nome(), nomes()).
48. Por qual motivo o código abaixo não compila? public 
class A { protected void x () throws Exception{ } } public 
class B extends A{ private void x () throws 
SQLException{ } } 
O código não lança nenhum tipo de exceção 
O tipo da exceção declarada na classe filha é diferente do que foi declarado na classe mãe 
O modificador de visibilidade é diferente 
O modificador de visibilidade é mais restrito na classe filha do que na classe mãe 
Explicação sobre a resposta
Quando sobrescrevemos um método, só podemos utilizar um modificador de visibilidade igual ou 
menos restrito do que o especificado na classe mãe. No caso, o modificador poderia ser "protected" 
ou "public".
49. Qual será o resultado de compilar e executar o código 
abaixo? class xyz { public static void main(String ... args) { 
int y; for(int x = 0; x<10; ++x) { y = x % 5 +2; } 
System.out.println(y); } } 
6 
5 
4 
3 
2 
1 
Não compila. 
Explicação sobre a resposta
A variável y é local ao método e não foi inicializada. Ao contrário das variáveis de instância de uma 
classe, as variáveis locais a métodos não são automaticamente inicializadas.
50. Qual o resultado de tentar compilar e executar o código 
abaixo? public class B { public static String classe() 
{ return "Classe B"; } } public class A extends B{ public 
static String classe() { return "Classe A"; } public static 
void main(String[] x){ B b = new A(); 
System.out.println(b.classe()); } } 
Erro de compilação 
"Classe B" 
"Classe A" 
Explicação sobre a resposta
Quando chamamos métodos estáticos, o Java define em tempo de compilação (e não em tempo de 
execução, como com chamadas a métodos de instância) qual método será chamado por meio do tipo 
da referência usada para chamá-lo.
51. Qual trecho de código que, substituindo o comentário, 
NÂO compila (escolha duas opções)? class A{} class B 
extends A{ public static void main(String [] args) { A a = 
new A(); B b = new B(); //aqui } } 
boolean bool = (a instanceof B); 
boolean bool = (b instanceof A); 
boolean bool = (a instanceof String); 
boolean bool = (a instanceof Object); 
boolean bool = a.instanceOf(Object); 
Explicação sobre a resposta
Não há explicação escrita para esta resposta
52. Quais dos comandos abaixo compilam a classe Java 
com sucesso (assuma que a versão padrão do Java é 1.5; 
escolha três opções)? class Java { public static void 
main(String[] args) { assert(args.length == 1) : "ups"; } } 
javac Java.java 
javac -source 1.5 Java.java 
javac -source 1.4 Java.java 
javac -source 1.3 Java.java 
javac -ea Java.java 
javac -assertion Java.java 
Explicação sobre a resposta
A palavra-chave assert foi introduzida no Java 1.4. Antes disso, era possível, por exemplo, ter um 
método chamado "assert". Se esse código for interpretado como na versão 1.3, "assert" será 
interpretado como o nome de um método e a sintaxe estará inválida por causa dos dois pontos e a 
String. As flags "-ea" e "-assertion" não são flags válidas para o compilador ("-ea" é uma flag válida 
para a máquina virtual).
53. Quantas linhas aceitam varargs? void varargs(int 
args[]) {} void varargs(int ... args) {} void varargs(int 
args ...) {} void varargs(int[] args) {} void varargs(...) {} 
Nenhuma. 
4 
3 
2 
1 
0 
Explicação sobre a resposta
Apenas a sintaxe da linha 2 é uma declaração válida de varargs.
	1. Sim ou Não? O código abaixo compila e roda sem problemas? int[][] a = new int[10][10]; for(int[] is : a){ for(int i : is){ System.out.println(i); } } 
	Explicação sobre a resposta
	2. Qual é o resultado de compilar e executar o código abaixo? public class Carro { public static void main(String[] a) { new Carro().anda(); } public static void anda() { System.out.println("andando...."); para(); } public void para(){ System.out.println("parando...."); } } 
	Explicação sobre a resposta
	3. Qual o resultado ao tentar compilar e rodar este programa? public class Fors{ static int i; public static void main(String args[]){ for(i=0;i<3;i++){ System.out.print(i); } for(int i=2; i<3;i++){ System.out.print(i); } int i; for(i=0;i<2;i++){ System.out.print(i); } System.out.print(Fors.i); } } 
	Explicação sobre a resposta
	4. Considere o código abaixo, com cada classe escrita em arquivos separados chamados Pai.java, Filho.java e Teste.java respectivamente: class Pai { Pai() { System.out.println("Pai"); } Pai(int valor) { System.out.println("Pai int: " + valor); } } class Filho extends Pai { Filho() { System.out.println("Filho"); } Filho(int valor) { super(valor); this(); } } public class Teste { public static void main(String[] args) { Pai p = new Pai(); Filho primeiro = new Filho(); } } Quais das seguintes afirmações são verdadeiras? 
	Explicação sobre a resposta
	5. Qual a saída do programa a seguir ao executá-lo? class NormalException extends Exception{} class EspecialException extends RuntimeException{} public class G{ public void metodo() throws NormalException{ throw new NormalException(); } public static void main(String args[]){ int a,b,c,d; a=b=c=d=0; try{ new G().metodo(); a++; }catch(NormalException e){ b++; }catch(EspecialException e){ c++; }finally{ d++; } System.out.println(a+","+b+","+c+","+d); } } 
	Explicação sobre a resposta
	6. O que podemos dizer sobre o código abaixo? class ClasseMae{ protected void meuMetodo(){ } } class Outra extends ClasseMae{ public void meuMetodo() throws SQLException{ } } 
	Explicação sobre a resposta
	7. O que acontece ao compilar e executar o programa a seguir? public class Fundamentos{ public static void main(String args[]){ int i; while(i<10){ i++; System.out.println(i); } } } 
	Explicação sobre a resposta
	8. Considere o código abaixo: for (int i = 0; i < 3; i++) { for (int j = 1; j < 3; j++) { if (i % j == 0) { continue; } else { System.out.println("i = " + i + ", j = " + j); } } } Qual dessas linhas será mostrada na tela? 
	Explicação sobre a resposta
	9. Qual resposta é verdadeira em relação ao código abaixo? class Tipo { Tipo(String texto) { this(Integer.parseInt(texto)); System.out.println("Texto: " + texto); } Tipo(int valor) { this("" + valor); System.out.println("Valor " + valor); } } public class Teste { public static void main(String args[]) { Tipo tipo = new Tipo("15"); } } 
	Explicação sobre a resposta
	10. Quais das seguintes afirmações sobre o código abaixo são verdadeiras? public class Controle { public Controle(String s) { } private Controle(int i) { } protected Controle(double d) { } Controle(Controle principal) { } } 
	Explicação sobre a resposta
	11. Qual resposta é verdadeira em relação ao código abaixo? class Pai { public Pai() { System.out.println("Construtor do pai"); } } class Filho extends Pai { Filho() { System.out.println("Construtor do filho"); super();} } public class Teste { public static void main(String[] args) { Filho filho = new Filho(); } } 
	Explicação sobre a resposta
	12. Observe o código abaixo: class A{ void metodo(int a){} } class B extends A{ } Qual dos códigos abaixo pode ser adicionado na linha 06? 
	Explicação sobre a resposta
	13. Considere o código abaixo: int i=1,j=1; externo: for (i = 1; i <= 5; i++) { for (j = 1; j <= 5; j++) { if (i+j==5) { break externo; } } } System.out.println(i+j); Qual será o resultado apresentado na tela? 
	Explicação sobre a resposta
	14. Considere o seguinte código: public class Teste{ public static void main(){ System.out.println("teste"); } } O que podemos dizer sobre ele? 
	Explicação sobre a resposta
	15. O que acontece ao compilar e rodar o código abaixo? public class Teste { public static void main(String [] args) { int array[] = new int[]{ 1, 2, 3, 4}; for(int i = 1; i < array.length; i++) { System.out.println("Posicao " + i + " com valor " + array[i]); } } } 
	Explicação sobre a resposta
	16. Quais das maneiras abaixo são declarações e inicializações válidas para uma array? 
	Explicação sobre a resposta
	17. Que situação o código abaixo indica? class Carro{ String cor = "branco"; void mudaCor(String cor){ this.cor = cor; } } class Pessoa{ final Carro carro = new Carro(); void mudaCorDoCarro(String cor){ carro.mudaCor(cor); } } 
	Explicação sobre a resposta
	18. O que acontece ao tentarmos compilar e rodar o programa Teste? abstract class Animal{ } class Mamifero extends Animal{ } class Anfibio extends Animal{ } public class Teste{ public static void main(String[] args){ Animal animal = new Mamifero(); Anfibio anfibio = (Anfibio) animal; } } 
	Explicação sobre a resposta
	19. Qual das seguintes declarações de classes é valida? Considere que nenhuma das classes são aninhadas e cada uma está dentro de um arquivo '.java' com o mesmo nome que a classe. 
	Explicação sobre a resposta
	20. Qual resposta é verdadeira em relação ao código abaixo? class MeuTipo { MeuTipo(String s) { } MeuTipo() { } } class TipoFilho extends MeuTipo { } 
	Explicação sobre a resposta
	21. Observe o código abaixo: class Fluxo{ public static void main(String args[]) { char c = 69; switch(c) { case 1 : System.out.print("1 "); default: System.out.print("default "); case 2 : System.out.print("2 "); case 3 : System.out.print("3 "); case 4 : System.out.print("4 "); } } } Qual é o resultado apresentado na tela? 
	Explicação sobre a resposta
	22. Ao compilar e executar o código abaixo, o que acontece? public class Teste { public static void main(String args[]) { String s1 = "a"; String s2 = "a"; s1 += "bc"; System.out.println(s1); System.out.println(s2); } } 
	Explicação sobre a resposta
	23. Observe o código a seguir: import java.io.*; class FileTeste{ public static void main(String args[]) { try { System.out.print("tenta "); File f = new File("teste.txt"); return; } catch (Exception e) { System.out.print("excecao "); } finally { System.out.print("finalmente"); } } } Assuma que o arquivo "teste.txt" não existe. Qual será o resultado apresentado na tela? 
	Explicação sobre a resposta
	24. Qual o resultado de compilar e executar o código abaixo? public class Teste { public static void main(String [] args) { boolean b = false; if(b = false) { System.out.println("B verdadeiro"); } else { System.out.println("B falso"); } } } 
	Explicação sobre a resposta
	25. O que acontece ao rodarmos a classe Teste abaixo? class Funcionario{ public void mostraSalario(){ System.out.println("meu salário: 1.000,00"); } } class Diretor extends Funcionario{ public void mostraSalario(){ System.out.println("meu salário: 5.000,00"); } } public class Teste{ public static void main(String[] args){ Funcionario funcionario = new Diretor(); funcionario.mostraSalario(); } } 
	Explicação sobre a resposta
	26. O que acontecerá com o código abaixo? public class array { public static void main(String args[]) { int[][] a = new int[10][10]; for(int[] is : a){ for(int i : is){ System.out.println(i); } } } } 
	Explicação sobre a resposta
	27. O que imprime esse código? public class Retorno{ public static void main(String[] args) { System.out.println(Retorno.test()); } public static int test() { int a = 3; try { return a; } catch (Exception e) { return -1; } finally { a = 0; return a; } } } 
	Explicação sobre a resposta
	28. Qual será o resultado de tentar compilar e executar o código abaixo? public class Wrapper { public static void main(String[] args) { doIt(new Byte("3")); } public static void doIt(long valor) { System.out.println("doIt com long"); } public static void doIt(int valor) { System.out.println("doIt com int"); } public static void doIt(Long valor) { System.out.println("doIt com Long"); } public static void doIt(Integer valor) { System.out.println("doIt com Integer"); } } 
	Explicação sobre a resposta
	29. Qual o resultado de tentar compilar e executar o código abaixo dentro de um método main? String a = "String"; int b = 3; int c = 7; System.out.println(a + b + c + a); 
	Explicação sobre a resposta
	30. O que acontece com o código abaixo? class swbyte{ public static void main(String args[]){ byte x = 3; switch(x){ case 1: System.out.println("x is equal to 1"); case 128: System.out.println("x eh 128"); } } } 
	Explicação sobre a resposta
	31. Qual o resultado da compilação e execução do seguinte código? public class Test { public static void main(String args[ ] ) { A x = new A("x"); A y = new A("y"); System.out.println(y.name(x)); } } class A { private String name; A(String a) { name = a; } String name(A a) { return a.name; } } 
	Explicação sobre a resposta
	32. Qual será a saída do código abaixo? import java.util.*; class A{ int iSimples; Integer iObjeto; String sObjeto; public static void main(String str[]){ A a = new A(); System.out.println(a.iSimples); System.out.println(a.iObjeto); System.out.println(a.sObjeto); } } 
	Explicação sobre a resposta
	33. Qual será o resultado? public class Boxing { public static void main(String[] args) { doIt(new Byte("3")); } public static void doIt(Short valor) { System.out.println("doIt com Short"); } public static void doIt(Long valor) { System.out.println("doIt com Long"); } public static void doIt(Integer valor) { System.out.println("doIt com Integer"); } } 
	Explicação sobre a resposta
	34. Qual será o resultado? public class Labels { public static void main(String[] args) { outer: for (int a = 0; a < 5; a++) { inner: for (int i = 0; i < 5; i++) { if(i == 1) continue inner; if (i == 3) break outer; System.out.print(i); } } } } 
	Explicação sobre a resposta
	35. O que acontece ao compilar e executar o programa a seguir? class Out { static{ System.out.print("6");} {System.out.print("5");} Out() {System.out.print("4");} } class Outer extends Out { static {System.out.print("3");} {System.out.print("2");} Outer() {System.out.println("1");} public static void main(String ...args) { new Outer(); } } 
	Explicação sobre a resposta
	36. Qual será o resultado da execução do código abaixo? public class Animals { static class Animal{}; static class Dog extends Animal{}; static class Cat extends Animal{}; static void test(Animal[] as, Animal a) { as[0] = a; } public static void main(String[] args) { Dog[] as = {new Dog(),new Dog(), new Dog()}; test(as, new Cat()); System.out.println(as.length); } } 
	Explicação sobre a resposta
	37. Quais das afirmações sobre o código abaixo são verdadeiras? class Teste { int test() {return null;} int test(int x) {return 0;} } class TesteFilho extends Teste { protected int test() {return 0;} int test(long x) {return 0;} } 
	Explicação sobre a resposta
	38. O que o código abaixo, ao ser executado, vai imprimir? System.out.println(1+2+""+2+1); 
	Explicação sobre a resposta
	39. O que será impresso ao executar o código abaixo? public class TesteFor { public static void main( String args[] ) { int i, soma=0; for( i=1; i<=5; i++ ) { if(i==4) continue; soma += i; } System.out.println( soma ); } } 
	Explicação sobre a resposta
	40. Dado o código abaixo, quais fragmentosde código compilam? interface Base { boolean m1(); byte m2( short s); } 
	Explicação sobre a resposta
	41. O que será impresso ao executar essa classe? class Teste { public static void main(String[] args) { System.out.println("Inicio do main!!"); try { metodo1(); } catch(ArrayIndexOutOfBoundsException e) { System.out.println("Erro: " + e); } System.out.println("Fim do main!!"); } public static void metodo1() { System.out.println("Inicio do medotodo1!!"); metodo2(); System.out.println("Fim do medotodo1!!"); } public static void metodo2() { System.out.println("Inicio do medotodo2!!"); int[] array = new int[10]; for (int i=0; i < 15; i+=++i) { array[i] = i; System.out.println(i); } System.out.println("Fim do medotodo2!!"); } } 
	Explicação sobre a resposta
	42. Qual é o resultado de compilar e executar o código abaixo? class A{ int val = 010; public static void main(String[] args){ A a = new A(); int val = a.val; a.metodo(val); System.out.print(" "+(val*2)); } void metodo(int val){val-=2; System.out.print(this.val);} } 
	Explicação sobre a resposta
	43. Qual é a saída deste código? System.out.println(1 > 2); 
	Explicação sobre a resposta
	44. O que devemos adicionar a ClasseA para que o código abaixo possa compilar sem erros? public class ClasseA{ public ClasseB b = new ClasseB(); } class ClasseB{ ClasseB() trhows Exception{ System.out.println("Construtor da ClasseB"); } } 
	Explicação sobre a resposta
	45. Qual o resultado de tentar compilar e executar o código abaixo? public class TestByte { public static void main(String[] args) { byte b =1; byte b2 = 3; byte b3 = b + b2; System.out.println(b3); } } 
	Explicação sobre a resposta
	46. Analise o seguinte código. Qual o resultado de tentar compilá-lo e executá-lo? Arquivo A.java public class A extends B{ public String imprime() throws SQLException{ return "classe A"; } public static void main(String... a) throws Exception{ B b = new A(); System.out.println(b.imprime()); } } Arquivo B.java public class B{ public String imprime() throws Exception{ return "classe B"; } } 
	Explicação sobre a resposta
	47. Por que o código abaixo não compila? public class A implements B{ public void nome() { } } public interface B extends C{ void nome(); } public interface C { void nomes(); } 
	Explicação sobre a resposta
	48. Por qual motivo o código abaixo não compila? public class A { protected void x () throws Exception{ } } public class B extends A{ private void x () throws SQLException{ } } 
	Explicação sobre a resposta
	49. Qual será o resultado de compilar e executar o código abaixo? class xyz { public static void main(String ... args) { int y; for(int x = 0; x<10; ++x) { y = x % 5 +2; } System.out.println(y); } } 
	Explicação sobre a resposta
	50. Qual o resultado de tentar compilar e executar o código abaixo? public class B { public static String classe() { return "Classe B"; } } public class A extends B{ public static String classe() { return "Classe A"; } public static void main(String[] x){ B b = new A(); System.out.println(b.classe()); } } 
	Explicação sobre a resposta
	51. Qual trecho de código que, substituindo o comentário, NÂO compila (escolha duas opções)? class A{} class B extends A{ public static void main(String [] args) { A a = new A(); B b = new B(); //aqui } } 
	Explicação sobre a resposta
	52. Quais dos comandos abaixo compilam a classe Java com sucesso (assuma que a versão padrão do Java é 1.5; escolha três opções)? class Java { public static void main(String[] args) { assert(args.length == 1) : "ups"; } } 
	Explicação sobre a resposta
	53. Quantas linhas aceitam varargs? void varargs(int args[]) {} void varargs(int ... args) {} void varargs(int args ...) {} void varargs(int[] args) {} void varargs(...) {} 
	Explicação sobre a resposta
	unnamed0: Off
	unnamed1: Off
	unnamed01: Off
	unnamed11: Off
	unnamed2: Off
	unnamed3: Off
	unnamed02: Off
	unnamed12: Off
	unnamed21: Off
	unnamed31: Off
	unnamed4: Off
	unnamed5: Off
	unnamed6: Off
	unnamed7: Off
	unnamed0_2: Off
	unnamed1_2: Off
	unnamed2_2: Off
	unnamed3_2: Off
	unnamed4_2: Off
	unnamed0_3: Off
	unnamed1_3: Off
	unnamed2_3: Off
	unnamed3_3: Off
	unnamed4_3: Off
	unnamed5_2: Off
	unnamed01_2: Off
	unnamed11_2: Off
	unnamed21_2: Off
	unnamed31_2: Off
	unnamed0_4: Off
	unnamed1_4: Off
	unnamed2_4: Off
	unnamed3_4: Off
	unnamed4_4: Off
	unnamed01_3: Off
	unnamed11_3: Off
	unnamed21_3: Off
	unnamed31_3: Off
	unnamed41: Off
	unnamed5_3: Off
	unnamed02_2: Off
	unnamed1_5: Off
	unnamed2_5: Off
	unnamed3_5: on
	unnamed0_5: Off
	unnamed11_4: Off
	unnamed21_4: Off
	unnamed31_4: Off
	unnamed4_5: Off
	unnamed5_4: Off
	unnamed01_4: Off
	unnamed12_2: Off
	unnamed22: Off
	unnamed32: on
	unnamed0_6: Off
	unnamed1_6: Off
	unnamed2_6: Off
	unnamed3_6: Off
	unnamed4_6: Off
	unnamed01_5: Off
	unnamed11_5: Off
	unnamed21_5: Off
	unnamed31_5: Off
	unnamed41_2: Off
	unnamed5_5: Off
	unnamed02_3: Off
	unnamed1_7: Off
	unnamed2_7: Off
	unnamed0_7: Off
	unnamed11_6: on
	unnamed21_6: Off
	unnamed3_7: Off
	unnamed4_7: Off
	unnamed5_6: Off
	unnamed6_2: Off
	unnamed01_6: Off
	unnamed12_3: Off
	unnamed22_2: Off
	unnamed31_6: Off
	unnamed41_3: Off
	unnamed51: Off
	unnamed61: Off
	unnamed7_2: Off
	unnamed8: Off
	unnamed0_8: Off
	unnamed1_8: Off
	unnamed2_8: Off
	unnamed3_8: Off
	unnamed01_7: Off
	unnamed11_7: Off
	unnamed21_7: Off
	unnamed31_7: Off
	unnamed4_8: Off
	unnamed0_9: Off
	unnamed1_9: Off
	unnamed2_9: Off
	unnamed3_9: Off
	unnamed4_9: Off
	unnamed01_8: Off
	unnamed11_8: Off
	unnamed21_8: Off
	unnamed31_8: Off
	unnamed02_4: Off
	unnamed12_4: Off
	unnamed22_3: Off
	unnamed32_2: Off
	unnamed41_4: Off
	unnamed5_7: Off
	unnamed0_10: Off
	unnamed1_10: Off
	unnamed2_10: Off
	unnamed3_10: Off
	unnamed01_9: Off
	unnamed11_9: Off
	unnamed21_9: Off
	unnamed31_9: Off
	unnamed4_10: Off
	unnamed0_11: Off
	unnamed1_11: Off
	unnamed2_11: Off
	unnamed01_10: Off
	unnamed11_10: Off
	unnamed21_10: Off
	unnamed3_11: Off
	unnamed02_5: Off
	unnamed1_12: Off
	unnamed2_12: Off
	unnamed3_12: Off
	unnamed4_11: Off
	unnamed0_12: Off
	unnamed11_11: Off
	unnamed21_11: Off
	unnamed31_10: Off
	unnamed41_5: Off
	unnamed01_11: Off
	unnamed12_5: Off
	unnamed22_4: Off
	unnamed32_3: Off
	unnamed42: Off
	unnamed0_13: Off
	unnamed1_13: Off
	unnamed2_13: Off
	unnamed3_13: Off
	unnamed4_12: Off
	unnamed01_12: Off
	unnamed11_12: Off
	unnamed21_12: Off
	unnamed02_6: Off
	unnamed12_6: Off
	unnamed22_5: Off
	unnamed31_11: Off
	unnamed41_6: Off
	unnamed0_14: Off
	unnamed1_14: Off
	unnamed2_14: Off
	unnamed3_14: Off
	unnamed4_13: Off
	unnamed01_13: Off
	unnamed11_13: Off
	unnamed21_13: Off
	unnamed31_12: Off
	unnamed02_7: Off
	unnamed12_7: Off
	unnamed22_6: Off
	unnamed32_4: Off
	unnamed41_7: Off
	unnamed0_15: Off
	unnamed1_15: Off
	unnamed2_15: Off
	unnamed3_15: Off
	unnamed4_14: Off
	unnamed01_14: Off
	unnamed11_14: Off
	unnamed21_14: Off
	unnamed31_13: Off
	unnamed41_8: Off
	unnamed0_16: Off
	unnamed1_16: Off
	unnamed2_16: Off
	unnamed3_16: Off
	unnamed4_15: Off
	unnamed01_15: Off
	unnamed11_15: Off
	unnamed21_15: Off
	unnamed31_14: Off
	unnamed41_9: Off
	unnamed5_8: Off
	unnamed02_8: Off
	unnamed12_8: Off
	unnamed22_7: Off
	unnamed32_5: on
	unnamed0_17: Yes
	unnamed1_17: Off
	unnamed2_17: Yes
	unnamed3_17: Off
	unnamed01_16: Off
	unnamed11_16: Off
	unnamed21_16: Off
	unnamed31_15: Off
	unnamed4_16: Off
	unnamed02_9: Off
	unnamed12_9: Off
	unnamed2_18: Off
	unnamed3_18: Off
	unnamed4_17: Off
	unnamed0_18: Off
	unnamed1_18: Off
	unnamed21_17: Off
	unnamed31_16: Off
	unnamed01_17: Off
	unnamed11_17: Off
	unnamed02_10: Off
	unnamed12_10: Off
	unnamed22_8: Off
	unnamed3_19: Off
	unnamed4_18: Off
	unnamed0_19: Off
	unnamed1_19: Off
	unnamed2_19: Off
	unnamed31_17: Off
	unnamed01_18: Off
	unnamed11_18: Off
	unnamed21_18: Off
	unnamed32_6: Off
	unnamed0_20: Off
	unnamed1_20: Off
	unnamed2_20: Off
	unnamed3_20: Off
	unnamed01_19: Off
	unnamed11_19: Off
	unnamed21_19: Off
	unnamed31_18: Off
	unnamed4_19: Off
	unnamed5_9: Off
	unnamed6_3: Off
	unnamed02_11: Off
	unnamed12_11: Off
	unnamed22_9: on
	unnamed0_21: Off
	unnamed1_21: Yes
	unnamed2_21: Offunnamed3_21: Yes
	unnamed4_20: Off
	unnamed01_20: Off
	unnamed11_20: Yes
	unnamed21_20: Off
	unnamed31_19: Yes
	unnamed41_10: Yes
	unnamed5_10: Off
	unnamed02_12: on
	unnamed12_12: Off
	unnamed22_10: Off
	unnamed3_22: Off
	unnamed4_21: Off
	unnamed5_11: Off

Outros materiais