Você está na página 1de 74

Exerccios

para o
Exame de Certificao em Java

GEEK BRASIL - http://www.geekbrasil.com.br

Captulo 01
Questionrio
1. Verdadeiro ou Falso: Um tipo de dados assinado tem um nmero igual de
non-zero positivo e negativo estima disponvel.
Falso. O alcance de nmero negativo maior por 1 que o alcance
de nmeros positivos.
2. Escolha o identificadores vlido desses listados abaixo.
A. Big01LongStringWi
B. $int
C. bytes
D. $1
E. finalista
Todos os identificadores so vlidos.
3. O qual das assinaturas seguintes so vlidos para o principal () ponto de
entrada de mtodo de uma aplicao?
B. pblico arg de main(String nulo esttico [])
D. pblico main(String nulo esttico [] arg)
As alternativas B e D so ambas aceitveis.
4. Se todos os trs " elementos de topo-nvel " acontecem em um arquivo de
fonte, eles tm que aparecer em qual ordem?
A. Importaes, declarao de pacote, classes,
B. Classes, importaes, declaraes de pacote,
C. Declarao de pacote tem que vir primeiro; ordene para importaes
e definies de classe no so significantes.
D. Empacote declarao, importaes, classes,
E. Importaes tm que vir primeiro; ordene para declarao de pacote e
definies de classe no so significantes.
A alternativa D est correto. Esta ordem deve ser observada
estritamente.

GEEK BRASIL - http://www.geekbrasil.com.br

5. Considere a linha seguinte de cdigo:


int x [] = new int[25];
Depois de execuo que statment ou declaraes so verdades?
A. x[24] 0.
B. x[24] indefinido.
C. x[25] 0.
D. x[0] nulo.
E. x.length 25.
As alternativas A e E so verdades. O array tem 25 elementos,
indexados de 0 por 24. Todos os elementos so inicializados com zero.
6. Considere a aplicao seguinte:
1. class Q6
2. { public static void main (String args [])
3. { Holder h = new Holder();
4. h.held = 100;
5. h.bump(h);
6. System.out.println(h.held);
7. }
8. }
9.
10. class Holder {
11. public int held;
12. public void bump(Holder theHolder)
13. {theHolder.held++;}
14. }
Que valor ser impresso na linha 6?
A. 0
B. 1
C. 100
D. 101
A alternativa D est correta. Esta ordem deve ser estritamente
observada.

GEEK BRASIL - http://www.geekbrasil.com.br

7. Considere a aplicao seguinte:


1. class Q7 {
2. public static void main(String args[]) {
3. double d = 12.3;
4. Decrementer dec = new Decrementer();
5. Dec.decrement(d);
6. System.out.println(d);
7. }
8. }
9.
10. class Decrementer {
11. public void decrement(double decMe)
12. { decMe = decMe 1.0;}
13. }

Que valor ser impresso na linha 6?


A. 0.0
B. -1.0
C. 12.3
D. 11.3
A alternativa C est correta. O passado para o mtodo decrement ()
uma cpia do argumento d; a cpia adquire decremento, mas o original
est intacto.
Observe a diferena entre esta questo e a anterior:
Nesta questo o mtodo Decrementer trabalha com uma cpia do
parmetro passado:
public void decrement(double decMe)
{decMe = decMe 1.0;}
Na questo anterior (6), o mtodo trabalha diretamente com
varivel.
Public void bump(Holder theHolder)
{theHolder.held++ ;}

GEEK BRASIL - http://www.geekbrasil.com.br

8. Como voc pode forar o Garbage Collection de um objeto?


A. Garbae no podem ser forados.
B. Chame System.gc ();
C. Chame System.gc (), passando em uma referncia ao objeto a ser
Garbage-collected.
D. Chame Runtime.gc ()
E. Fixe todas as referncias para o objeto para valores novos (nulo, por
exemplo).
A alternativa A est correta. Garbage colletion no pode ser
forado. Chamando System.gc () ou Runtime.gc () no 100 por cento
fidedigno, desde que a linha de Garbage-Collection poderia adiar a uma
linha de prioridade mais alta; assim B e D esto incorretos. C est
incorreto porque o dois mtodos gc () no levam argumentos; de fato,
isto voc ainda tem uma referncia para passar no mtodo, o objeto no
contudo elegvel ser colecionado. A alternativa E far o objeto elegvel
para coleo o da prxima vez as corridas de coleo de lixo.
9. Qual o alcance de valores que podem ser nomeados a uma varivel do
tipo short ?
A. Depende do hardware subjacente.
B. 0 at 216 - 1
C. 0 at 232 - 1
D. 215 at 215 - 1
E. 231 at 231 - 1
A alternativa D est correto. O alcance para um 16 bit pequeno
215 por 215 - 1. Este alcance parte da especificao de java, embora o
hardware subjacente.
10. Qual o alcance de valores que podem ser nomeados a uma varivel do
tipo byte ?
A. Depende do hardware subjacente.
B. 0 por 28 - 1
C. 0 por 216 - 1
D. 27 por 27 - 1
E. 215 por 215 - 1
A alternativa D est correta. O alcance para uns 8-bit pequeno 27 por
2 - 1.
7

GEEK BRASIL - http://www.geekbrasil.com.br

Captulo 02
1. Depois de execuo do fragmento de cdigo abaixo, quais so os valores
das variveis x, a e b ?
1. int x, a = 6, b = 7;
2. x = a++ + b++;
A. x = 15, a = 7, b = 8
B. x = 15, a = 6, b = 7
C. x = 13, a = 7, b = 8
D. x = 13, a = 6, b = 7
A alternativa C est correta. A declarao de tarefa avaliada se era
x = a + b;
a = a + 1;
b = b + 1;
Ento a tarefa para x que usa a soma de 6 + 7 = 13. Depois da
adio, os valores de a e b so incrementados, so armazenados os
novos valores, 7 e 8, nas variveis.
2. Qual das expresses seguintes so legais? (Escolha uma ou mais)
A. int x = 6; x =!x;
B. int x = 6; if (! (x>3)) {}
C. int x = 6; x = ~x;
As alternativas B e C esto corretas. Em A o uso de ! imprprio,
desde que x de tipo de int, no boolean. Este um engano comum entre
programadores de C e C++, desde que a expresso seria vlida nesses
idiomas. Na alternativa B, a comparao deselegante (comea um
incmodo equivalente de se (x <= 3), mas vlido, desde a expresso (x> 3)
um tipo de boolean, e o operador ! pode ser aplicado corretamente a
isto. Na alternativa C o operador de inverso de bitwise aplicado a um
tipo integrante. O padro de pedao de 6 olhares como 0 ...0110 onde a
elipse representa 271 pedaos.
3. Qual dos resultados das seguintes expresses resultar em um valor
positivo em x? (Escolhe uma).
A. int x = -1; x = x >>> 5;
B. int x = -1; x = x >>> 32;
C. byte x = -1; x = x >>> 5;
D. int x = -1; x = x >> 5;
GEEK BRASIL - http://www.geekbrasil.com.br

A alternativa A est correta. Em todo caso, o padro de bit para -1


" todo os uns ". Na alternativa A isto trocado direita no mximo cinco
lugares com a introduo de bits 0 de posies significantes. O resultado
271 pedaos na posio menos significante do valor de int.
Considerando que o bit mais significante 0, isto representa um valor
positivo (de fato 134217727). Na alternativa B o valor de troca 32 bits.
Isto resultar em nenhuma mudana para a varivel x, desde que seja
executado de fato por (32 mod 32) bits que igual 0. Assim em B o valor
de x est inalterado ( - 1). Na alternativa C realmente ilegal como o
resultado de x >>> 5 do tipo int, e no pode ser trocada para o tipo byte
x sem declarao explcita. At mesmo se o elenco foi somado e d para
byte x = -1; x = (byte) (x >> >5); o resultado da expresso x >>> seria
calculada de 5 formas:
1. Primeiro promove x para o tipo int. Isto d um resultado sinalestendido que um int -1 com 321 pedaos.
2. Executa a troca; isto se comporta da mesma forma do iten
anterior, dando 134217727 que o valor de 271 bits int das posies
menos significantes.
3. Trocando o resultado da expresso simplesmente "cortar", os
oito bits menos significantes, desde que todos estes sejam "uns", o byte
resultante representa -1.
Finalmente, a alternativa D executa uma troca assinada que
propaga 1 bits na posio mais significante. Assim, neste caso, o valor
resultante de x est inalterado a - 1.
4. Qual das expresses seguintes so legais? (Escolhe uma ou mais).
A. String x = Oi "; int y = 9; x + = y;
B. String x = Oi "; int y = 9; se (x == y) {}
C. String x = Oi "; int y = 9; x = x + y;
D. String x = Oi "; int y = 9; y = y + x;
E. String x = nulo;
int y = (x! = null) && (x.length ()> 0)? x.length (): 0;
As alternativas A, C e E so todas legais. Na alternativa A o uso de
+ = tratado como uma taquigrafia para a expresso em C. Isto tenta
"somar " um int para uma String que resulta em converso do int para o
tipo String -" 9 " neste caso - h a concatenao dos dois objetos para
String. Assim neste caso, executado o valor de x depois do cdigo "
Hello9 ".
Na alternativa B a comparao (x == y) no legal, porque apenas
o operador + executa converso implcita para um objeto String. A y
varivel do tipo int e no pode ser comparado com um valor de
referncia. No esquea daquela comparao == que usa nos testes os
valores e que para objetos, o " valor " o valor de referncia e no os
contedos.
GEEK BRASIL - http://www.geekbrasil.com.br

A alternativa C idntica a alternativa A sem o uso do operador de


tarefa de taquigrafia.
A alternativa D calcula y + x que legal em si mesmo porque
produz uma String da mesma maneira como fez x + y. Ela tenta nomear o
resultado que " 9Hello " em uma varivel de int ento. Como o resultado
de y + x uma String, isto no permitido.
A alternativa E bastante diferente das outras. Os pontos
importantes so o uso de curto circuito o operador && e o operador
ternrio?:. O operador esquerda do && o operador que sempre
avaliado, e neste caso a condio (x != nulo) falsa. Porque isto falso, a
parte da mo direita da expresso (x.length ( )> 0) no precisa ter sido
avaliada, porque o resultado do operador && conhecido para ser falso.
Iste pequeno-cirucuito efetue nitidamente e evita a execuo da
chamada de mtodo x.length () que falharia com um NullPointerException
no momento da sua corrida. Este resultado falso ento usado na
avaliao da expresso ternria. Como o valor de boolean falso, o
resultado da expresso global volta direita o valor do clon que 0.
5. Qual dos fragmentos de cdigo seguintes compilaria prosperamente e
imprimiria " Iguale " quando corre? (Escolha uma ou mais)
A. int x = 100; float y = 100.0F;
if (x == y) {System.out.println(Equal );}
B. int x = 100; Interger y = new Interger(100);
if (x == y) {System.out.println(Equal );}
C. Integer x = new Integer(100);
Integer y = new Integer(100);
if (x == y) {System.out.println(Equal );}
D. String x = new String(100);
String y = new String(100);
if (x == y) {System.out.println(Equal );}
E. String x = 100;
String y = 100;
if (x == y) {System.out.println(Equal );}
As alternativas A e E esto corretas. Embora int e float no sejam
compatveis, eles geralmente podem ser misturados em qualquer lado de
um operador. Desde ento == no nenhuma tarefa mas do que um
operador de comparao, isto simplesmente causa promoo normal, de
forma que o int promovido a um valor do tipo float 9.0 e comparado
GEEK BRASIL - http://www.geekbrasil.com.br

prosperamente com o outro float de valor 9.0F. Por isto alternativa A


verdade.
O cdigo em na alternativa B na verdade no compila. Isto por causa do
mismatch entre o tipo int e objeto de Inteiro. O valor de um objeto sua
referncia, e nenhuma converso sempre possvel entre referncias e
tipos numricos. Isto aplica a qualquer converso, no s
compatibilidade de tarefa.
Na alternativa C, compila o cdigo prosperamente, desde que a
comparao esteja entre duas referncias de objeto. Porm, o teste para
igualdade compara o valor das referncias (o endereo de memria
tipicamente) e desde as variveis x e y se referem a dois objetos
diferentes, o teste devolve falso. O cdigo na alternativa D se comporta
do mesmo modo exatamente.
Comparando as alternativas E com a D poderia o persuadir que a
alternativa E no deveria imprimir " Igual " provavelmente. De fato faz
assim por causa de um optimizador exigido. Considerando que os objetos
da String so imutveis, o literal inevitavelmente fio constante, assim o
compilador r-usa o mesmo objeto da String tendo-se o mesmo valor
literal acontecendo-se mais de uma vez na fonte. Isto significa que as
variveis que x e y se referem de fato ao mesmo objeto; assim o teste (x
==y) verdade e a " mensagem Igual " impressa. particularmente
importante que voc no permita este comportamento especial para o
persuadir que o operador == possa ser usado para comparar os
contedos de objetos de qualquer modo geral.
6. Qual o resultado obtido aps a execuo do seguinte cdigo:
1.
2.
3.
4.
5.
6.
7.
8.
9.

public class Short {


public static void main(String args[ ]) {
StringBuffer s = new StringBuffer(Hello);
If ((s.length( ) > 5 ) &&
(s.append( there).equals(False)));
// do nothing
System.out.println(value is + s);
}
}

A. O valor de sada Hello.


B. O valor de sada Hello there.
C. Ir ocorre um erro de compilao na linha 4 or 5.
D. No haver valor de sada.
E. Ocorrer um NullPointerException.
GEEK BRASIL - http://www.geekbrasil.com.br

A alternativa A est correta. O efeito do operador && primeiro


avaliar o operando esquerda. Isso a expresso (s.length( )> 5). Como o
tamanho do objeto de StringBuffer s de fato 5, este teste devolve falso.
Usando a identidade lgica falso AND X = falso, o valor do condicional
global completamente determinado, e o && o operador salta avaliao
do operando da mo direita ento. Como resultado, o valor no objeto de
StringBuffer ainda simplesmente " Oi " quando for impresso.
Se o teste no lado esquerda de && tinha devolvido verdadeiro, como
teria acontecido tido o StringBuffer contido um segmento de texto
mais longo, ento o lado da mo direita teria sido avaliado. Embora
poderia parecer um pouco estranho, aquela expresso, (s.append (l
").equals (false ")), vlido e retorna um boolean. De fato, garantido
o valor da expresso ser falso, desde que claramente impossvel
para qualquer StringBuffer conter precisamente " Falso " quando teve
h pouco uma String " l " juntado a isto. Isto porm irrelevante - a
essncia desta expresso que, se avaliado, tem o efeito colateral
de mudar o StringBuffer original juntando o texto " l ".
7. Qual o resultado obtido aps a execuo do seguinte cdigo:
1.
2.
3.
4.
5.
6.
7.
8.

public class Xor {


public static void main(String args[ ]) {
byte b = 10; // 00001010 binary
byte c = 15; // 00001111 binary
b = (byte) (b ^ c);
System.out.println(b contains + b);
}
}

A. O valor de sada b = 10.


B. O valor de sada b = 5.
C. O valor de sada b = 250.
D. O valor de sada b = 245.

A alternativa B est correta. O uso exclusivo do operador or ^


trabalha nos pares de pedaos em posio equivalente no dois
operadores. Neste exemplo produz isto:
00001010
00001111
GEEK BRASIL - http://www.geekbrasil.com.br

XOR -------------00000101
A advertncia que os nicos 1 bits na resposta esto nessas
colunas onde exatamente um do operandos tem um 1 bit. Se nenhum, ou
ambos, os operandos tem um 1, ento os resultados sero 0 bit.
O valor 00000101 binrio corresponde a 5 decimal.
preo que se lembra que, embora este exemplo foi mostrado como
um clculo de byte, o funcionamento atual int usando acabado (32bit) valores. Isto por que o elenco explcito requerido antes do
resultado nomeado no b varivel em linha 5.
8. Qual o resultado obtido aps a execuo do seguinte cdigo ?
1.
2.
3.
4.
5.
6.
7.

public class Ternary {


public static void main(String args[ ]) {
int x = 4;
System.out.println(value is +
(( x > 4) ? 99.99 : 9 ));
}
}

A. O valor de sada 99.99.


B. O valor de sada 9.
C. O valor de sada 9.0.
D. Ocorrer um erro de compilao na linha 5.
A alternativa C est correta. Neste cdigo os valores de resultado
opcionais para o operador ternrio, 99.99 (um double) e 9 (um int), so de
tipos diferentes. O tipo de resultado de um operador ternrio deve ser
determinado completamente em tempo de compilao, e neste caso o tipo
escolhido o de usar as regras de promoo para operandos binrio, que
o tipo double. Porque o resultado um double, o valor de produo est
impresso em um formato de ponto flutuante.
A escolha do qual os dois valores para produo feita em base do
valor de boolean que precede o ?. Desde que x 4, o teste (x> 4) falso.
Isto causa a expresso global para levar o segundo dos possveis valores
que so 9 em lugar de 99.99. Porque o tipo de resultado promovido para
um tipo double, o valor de produo escrito de fato como 9.0 em lugar
de o mais bvio 9.
GEEK BRASIL - http://www.geekbrasil.com.br

Se os dois possveis tipos de argumento tivessem sido completamente


incompatveis, por exemplo (x> 4)? " Oi ": 9, ento o compilador teria
emitido um erro naquela linha.
9. Qual o valor obtido aps a passagem pelo fragmento de cdigo a seguir ?
1. int x = 3; int y = 10;
2. System.out.println(y % x);
A. 0.
B. 1.
C. 2.
D. 3.
A alternativa B mostra a sada correta. Neste caso, o clculo
relativamente direto desde que inteiro s positivo seja envolvido.
Dividindo 10 por 3 d 3 sobrando 1, e este 1 forma o resultado da
expresso de mdulo. Outro modo para pensar neste clculo 10 - 3 = 7,
7 - 3 = 4, 4 - 3 = 1, 1 ento menos que 3 o resultado 1. A segunda
aproximao realmente mais geral, desde que dirige clculos de
flutuante-ponto, tambm. No esquea que para nmeros de negativo,
voc deveria ignorar os sinais durante o clculo separe, e simplesmente
prenda o sinal do operando esquerda para o resultado.
10. Qual o resultado obtido aps a execuo do fragmento de cdigo abaixo ?
1.
2.
3.
4.
5.
6.

int x = 1;
String [ ] names = { Fred, Jim, Sheila };
names[--x] += .;
for (int i = 0, i < names.length; i++) {
System.out.println(names[i]);
}

A. O valor de sada ser Fred.


B. O valor de sada ser Jim.
C. O valor de sada ser Sheila.
D. No haver nenhum valor de sada.
E. Ocorrer um erro do tipo ArrayIndexOutOfBoundsException.

GEEK BRASIL - http://www.geekbrasil.com.br

A alternativa A est correta. Os operadores de tarefa do op de


forma = s avalie a expresso esquerda uma vez. Assim o efeito de
decrementing x, em--x, s acontece uma vez e resulta em um valor de 0 e
no -1. Ento nenhum fora-de-salto forma so tentados acessos. Os
elementos de ordem que so afetado por isto operaes so " Fred ",
desde que o decrement acontece antes o + = operao executada.
Embora Fio objeta que eles so immutable, as referncias que so os
elementos de ordem no so. completamente possvel causar o valor
name[0] ser modificado para se referir a um Fio recentemente construdo
que acontece para ser " Fred ".

GEEK BRASIL - http://www.geekbrasil.com.br

Captulo 03
1. Qual das seguintes declaraes so ilegais ?
A. friendly String s;
B. transient int i = 41;
C. public final static native int w( );
D. abstract double d;
E. abstract final double hyperbolicConsine( );
A, D, e E so ilegais. A alternativa A ilegal porque amigvel no
um Keyword.A alternativa B uma declarao passageira legal. A
alternativa C estranha mas legal. A alternativa D ilegal porque s
mtodos e classes podem ser abstratas. A alternativa E ilegal porque
abstrato e final contraditrio.
2. Qual das declaraes verdadeira ?
A. Uma classe abstract no pode ter nenhum mtodo final.
B. Uma classe final no pode ter nenhum mtodo abstract.
A alternativa B verdadeira: Uma classe final pode no ter nenhum
mtodo abstrato. Qualquer classe abstrata, mtodos devem ser abstrato,
e uma classe pode no ser do tipo abstrato e final. A declarao da
alternativa A diz que na classe abstrata pode no ter mtodos finais, mas
no h nada errado com isto. A classe abstrata vai ser sub-classe
eventualmente, e a subdiviso de classe tem que evitar anular os
mtodos finais do pai. Qualquer outro mtodo pode ser anulado
livremente.
3. Qual ser a modificao mnima que permitir a compilao do cdigo a
seguir ?
1.
2.
3.
4.
5.
6.

final class Aaa


{ int xxx;
void yyy( ) { xxx = 1; }
}
class Bbb extends Aaa
GEEK BRASIL - http://www.geekbrasil.com.br

7. { final Aaa finalref = new Aaa( );


8. final void yyy ( )
9. { System.out.println(In method yyy( ));
10. finalref.xxx = 12345;
11. }
12. }
A. Na linha 1, remova o modificador final.
B. Na linha 10, remova o modificador final.
C. Remova a linha 15.
D. Nas linha 1 e 10, remova os modificadores final.
E. O cdigo ir compilar. No ser necessrio nenhuma modificao.
A alternativa A a resposta correta. O cdigo no compilar
porque na linha 1 a classe Aaa declarada final e pode no ser
subclasseada. Aslinhas 10 e 15 esto corretas. A instncia finalref
varivel final, assim pode no ser modificada; enlata s referncia que o
objeto criou em linha 10. Porm, o dados dentro daquele objeto no
final, assim no h nada errado com linha 15.
4. Qual das seguintes declaraes a verdadeira ?
A. Podem no ser anulados mtodos passageiros.
B. Devem ser anulados mtodos passageiros.
C. Podem no ser seriadas classes passageiras.
D. Variveis passageiras devem ser estticas.
E. Variveis passageiras no so seriadas.
A alternativa E est correta. As alternativas A, B, e C no querem
dizer nada, porque s variveis podem ser passageiras, no mtodos ou
classes. A alternativa D falsa porque variveis passageiras nunca
podem ser estticas. A alternativa E uma boa um-setence definio de
visitante.
5. Qual das declaraes na aplicao abaixo verdadeira ?
1. class StaticStuff
2. { static int x = 10;
3. static { x += 5; }
GEEK BRASIL - http://www.geekbrasil.com.br

4.
5.
6.
7.
8.

public static void main(String args[ ])


{
System.out.println(x = + x);
}
static {x /= 5;} }

A. As linhas 5 e 12 no iro compilar, devido a falta dos nomes dos


mtodos e dos tipos de retorno.
B. A linha 12 no ir compilar, porque voc no pode chamar apenas o
inicializador static.
C. O cdigo ir compilar e a sada ser x = 10.
D. O cdigo ir compilar e a sada ser x = 15.
E. O cdigo ir compilar e a sada ser x = 3.
A alternativa E est correta. Inicializadores estticos mltiplos
(enfileira 5 e 12) so permitidos. Todo o cdigo do inicializador esttico
executado em momento de classe-carga, assim antes de principal ()
sempre seja corrido, os dividiram por 5 (linha 12).
6. Qual das declaraes abaixo verdadeira ?
1. class HasStatic {
2. private static int x = 100;
3. public static void main(String args[ ])
4. { HasStatic hs1 = new HasStatic( );
5. hs1.x++;
6. HasStatic hs2 = new HasStatic( );
7. hs2.x++;
8. hs1 = new HasStatic( );
9. hs1.x++;
10. HasStatic.x++;
11. System.out.println(x = + x);
12. } }
A. A linha 8 no ir compilar, porque ela possui uma referncia static
para uma varivel private.
B. A linha 13 no ir compilar, porque ela possui uma referncia static
para uma varivel private.
C. O programa ir compilar e a sada ser x = 102.
D. O programa ir compilar e a sada ser x = 103.
GEEK BRASIL - http://www.geekbrasil.com.br

E. O programa ir compilar e a sada ser x = 104.


A alternativa E est correta. O programa compila bom; o
referncia esttica para uma varivel privada materiais em respostas
UM e B tolice. O x varivel esttico incrementado quatro vezes, em
linhas 8,10,12,and13.
7. Dado o cdigo abaixo, e fazendo nenhuma outra mudana que tem acesso
modificadores (o public, protected, ou private) pode ser colocado legalmente
antes de aMethod () na linha 3? Se a linha 3 permanece como esta, qual
palavras reservada podem ser colocados legalmente antes de aMethod () na
linha 8?
1.
2.
3.
4.
5.
6.

class SuperDuper {
void aMethod( ) { }
}
class Sub extends SuperDuper {
void aMethod( ) { }
}

Na linha 3, o mtodo pode ser declarado privado. O acesso de


mtodo da verso de subdiviso de classe (linha 8) amigvel, e s um
mtodo privado ou amigvel pode ser anulado para ser amigvel. O
princpio bsico que um mtodo pode no ser anulado para ser mais
privado. (Veja Figura 3.2) Em linha 8 (linha 3 pretensiosa permanece s), a
verso de suprclass amigvel, assim a verso de subdiviso de classe
pode estar como (e amigvel), ou pode ser declarado protegido ou
pblico.
8. Devero ser usados qual modificador ou modificadores para denotar uma
varivel que no deveria ser escrita fora como parte de seu estado de
presistente de classe?
A. private
B. protected
C. private protected
D. transient
E. private transient
A resposta correta D (transitent). Os outros modificadores
controlam acesso de outros objetos dentro do Java Mquina Virtual.
GEEK BRASIL - http://www.geekbrasil.com.br

Responda para E (o Visitante privado) tambm trabalha mas no


mnimo.
As prximas 02 questes sero baseadas na definio de classe a seguir:
1.
2.
3.
4.
5.
6.
7.

package abcde;
public class Bird {
protected static int referenceCount = 0;
public Bird( ) {referenceCount++;}
protected void fly( ) {/*Flap wings, etc. */}
static int getRefCount( ) {return referenceCount;}
}

9. Qual das declaraes nas classes Bird e Parrot verdadeira ?


1.
2.
3.
4.
5.

package abcde;
class Parrot extends abcde.Bird {
public void fly( ) {/*Parrot specific flight code.*/}
public int getRefCount( ) {return referenceCount}
}

A. Compilao do Parrot.java falha na linha 4, porque o mtodo fly()


protegido na superclass e a classes Bird e Parrot esto no mesmo
pacote.
B. Compilao do Parrot.java falha na linha 4, porque o mtodo fly()
protegido na superclass e pblico na subdiviso de classe e no podem
ser anulados mtodos para ser mais pblicos.
C. Compilao de Parrot.java falha na linha 5, porque o mtodo
getRefCount( ) esttico na superclass e os mtodos estticos no
podem ser overriden para ser non-estticos.
D. Compilao de Parrot.java ter sucesso, mas uma exceo de
runtime lanada se o mtodo fly( ) for sempre chamado em uma
instncia da classe Parrot.
E. Compilao de Parrot.java tem sucesso, mas uma exceo de
runtime lanada se o mtodogetRefCount( ) for sempre chamado em
uma instncia da classe Parrot.
A alternativa C est correta: Podem no ser anulados mtodos
estticos para ser non-estticos. B est incorreto porque declara o caso
para trs: Mtodos na verdade podem ser mais privados, no mais
pblico. Respostas A, D, e E no fazem sentido nenhuma.

GEEK BRASIL - http://www.geekbrasil.com.br

10. Qual das declaraes nas classes Bird e Nightingale abaixo verdadeira ?
1. package singers;
2.
3. class Nightingale extends abcde.Bird {
4. Nightingale( ) { referenceCount++;}
5.
6. public static void main(String args[ ]) {
7. System.out.println(BEFORE: + referenceCount);
8. Nightingale florence = new Nightingale( );
9. System.out.println( AFTER: + referenceCount);
10. florence.fly( );
11. } }
A. O programa ir compilar e executar. A sada ser Before: 0 e After: 2.
B. O programa ir compilar e executar. A sada ser Before: 0 e After: 1.
C. A compilao do Nightingale ir falhar na linha 4, porque statics no
podem ser anulados.
D. A compilao do Nightingale ir falhar na linha 10, porque o mtodo
fly( ) protegido na super-classe.
E. A compilao do Nightingale ir ser bem sucedida, mas uma
exception ir ocorrer na linha 10, porque o mtodo fly( ) protegido
na super-classe.
A alternativa A est correta. No h nada errado com Rouxinol. O
referenceCount esttico batido duas vezes: uma vez em linha 4 de
Rouxinol, e uma vez em linha 5 de Pssaro. (O constructor de nenhumargumento do superclass sempre caled de implicitly no comeo de uma
classe constructor de ', a menos que um constructor de superclass
diferente seja pedido. Isto no tem nada que ver Com o tpico deste
chapter,but coberto em Captulo 6, Objetos e Classes. ) ReferenceCount
de Sinse batido duas vezes e no s uma vez, resposta B est errado. C
diz que no podem ser anulados atatics, mas nenhum mtodo esttico
est sendo anulado em linha 4; tudo aquilo est acontecendo increment de na de na herdaram varivel esttica. D est errado, desde
protegeu justamente o modificador de acesso ns queremos Pssaro.
Voe () ter: Ns estamos chamando Pssaro. Voe () de uma subdiviso de
classe em um pacote diferente. Resposta E ridculo, mas usa
terminologia acreditvel.

GEEK BRASIL - http://www.geekbrasil.com.br

Captulo 04
1. Qual das seguintes declaraes a correta?
A. So convertidos automaticamente somente tipos primitivos, para
mudar o tipo de uma referncia de objeto, voc tem que fazer um cast.
B. So convertidas automaticamente somente referncias de objeto;
mudar o tipo de um primitivo, voc tem que fazer um cast.
C. Promoo de aritmtica de referncias de objeto requer arremesso
explcito.
D. Primitivos e referncias de objeto podem ser ambos convertidos e
podem fazer cast.
E. Casting de tipos numricos podem requerer um cheque de runtime.
A alternativa D est correta. C est errado porque objetos no
levam parte em operaes de aritmtica. E est errado porque lanando
potencialmente s de referncias de objeto requer um cheque de runtime.
2. Qual das linha a seguir no ir compilar ?
1.
2.
3.
4.
5.
6.
7.
8.
9.

byte b = 5;
char c = 5;
short s = 55;
int i = 555;
float f = 55.5F;
b = s;
i = c;
if (f > b)
f = i;

Enfileire 6 (b = s) no compilar porque convertendo um pequeno a


um byte uma converso de estreitamento que requer elenco de
anexplicit. As outras tarefas no cdigo esto alargando converses.
3. O cdigo abaixo ir compilar ?
1. byte b = 2;
2. byte b1 = 3;
3. b = b * b1;
O cdigo surpreendentemente, no compilar a linha 3. So
convertidos o dois operands que so originalmente bytes a ints antes da
GEEK BRASIL - http://www.geekbrasil.com.br

multiplicao. O resultado da multiplicao int de na que no pode ser


nomeado a byte B.
4. No cdigo abaixo, quais so os possveis tipos para resultado de varivel?
1. byte b = 11;
2. short s = 13;
3. result = b * ++s;
A. byte, short, int, long, float, double.
B. Boolean, byte, short, char, int, long, float, double.
C. Byte, short, char, int, long, float, double
D. Byte, short, char
E. Int, long, float, double
A alternativa E est correta. O resultado do clculo em linha 2 int
de na (porque todos os resultados de aritmtica so ints ou mais largo).
Int de Na podem ser assingned a int de na, longo, flutue, ou dobre.
5. Considere a seguinte class:
1. class Cruncher {
2. void crunch(int i) {System.out.println(int version );}
3. void crunch(String s) {System.out.println(String version );}
4.
5. public static void main(String args[ ]) {
6. Cruncher crun = new Cruncher( );
7. char ch = p;
8. crun.crunch(ch);
9. }
10. }
Qual das seguintes declaraes abaixo verdadeira ?
A. A linha 3 no ir compilar, porque o mtodo void no pode ser
anulado.
B. A linha 8 no ir compilar, porque no existe uma verso de crunch(
).
C. O cdigo ir compilar mas ir ocorre uma execption na linha 8.
D. O cdigo ir compilar e a procedure ter como sada: int version
GEEK BRASIL - http://www.geekbrasil.com.br

E. O cdigo ir compilar e a procedure ter como sada: String version


A alternativa D est correta. A linha 8, o ch de argumento de servio
domstico alargado para digitar int (uma converso de methodcall), e
passou verso de int de rudo de mtodo ().
6. Qual das declaraes abaixo verdadeira ?
A. Referencias de objetos podem ser convertidas em tarefas mas no em
chamadas de mtodo.
B. Referencias de objete podem ser convertidas em chamadas de mtodo
mas no em tarefas.
C. Referencias de objete podem ser convertidas em ambos os mtodos,
chamadas e tarefas, mas as regras que governam estas converses so
muito diferentes.
D. Referencias de objete podem ser convertidas em ambos os mtodo,
chamadas e tarefas, e as regras que governam estas converses so
idnticas.
E. Referencias de objetos nunca podem ser convertidas.
A alternativa D est correta.
7. Considere o seguinte cdigo:
1.
2.
3.
4.
5.
6.
7.
8.

Object ob = new Object ( );


String stringarr[ ] = new String[50];
Float floater = new Float(3.14F);
ob = stringarr;
ob = stringarr[5];
floater = ob;
ob = floater;

Qual destas linhas acima no compilar ?


Enfileire 7 no compilaro. Na varivel Objetam a Floast vai
abaixo a rvore de hierarquia de herana, assim na que elenco explcito
requerido.
As questes 8, 9 e 10 referem-se a hierarquia de class mostrada na
figura abaixo:
GEEK BRASIL - http://www.geekbrasil.com.br

Animal

Mammal
Dog

Cat
Implements
Washer

Raccoon
Implements
Washer

Swamp Thing

8. Considere o cdigo abaixo:


1.
2.
3.
4.
5.
6.
7.

Dog rover, fido;


Animal anim;
rover = new Dog( );
anim = rover;
fido = new rover;
fido = (Dog)anim;

Qual das declaraes abaixo verdadeira ?


A. A linha 5 no ir compilar.
B. A linha 6 no ir compilar.
C. O cdigo ir compilar mas ir ocorrer uma exception na linha 6.
D. O cdigo ir compilar e rodar.
E. O cdigo ir compilar e rodar, mas no necessrio o cast da linha 6
e pode ser eliminado.
A alternativa D est correta. O cdigo compilar e correr; o elenco
em linha 6 requerido, porque Animal de na varivel para um Cachorro
vai abaixo a rvore.
9. Considere o cdigo abaixo;
1.
2.
3.
4.
5.
6.

Cast sunflower;
Washer wawa;
SwampThing pogo;
sunflower = new Cat( );
wawa = sunflower;
GEEK BRASIL - http://www.geekbrasil.com.br

7. pogo = (SwampThing)wawa;
Qual das declaraes abaixo verdadeira ?
A. A linha 6 no ir compilar; um cast explicito necessrio para
converter o Cat para o Washer.
B. A linha 7 no ir compilar, porque voc no pode fazer um cast da
interface para a classe.
C. O cdigo ir compilar e rodar, mas o cast da linha 7 no necessrio
e pode ser eliminado.
D. O cdigo ir compilar mas ir ocorrer uma exception na linha 7,
porque a converso em tempo de execuo da interface para a
classe no permitida.
E. O cdigo ir compilar mas ir ocorrer uma exception na linha 7,
porque em tempo de execuo a classe wawa no pode ser
convertida para o tipo SwampThing.
A alternativa E est correta. O elenco na linha 7 requerido.
Resposta D uma declarao prepstera expressada em um tom de
autoridade.
10. Considere o cdigo a seguir:
1.
2.
3.
4.
5.
6.
7.

Raccon rocky;
SwampThing pogo;
Washer w;
rocky = new Raccon( );
w = rocky;
pogo = w;

Qual das declaraes a seguir verdadeira ?


A. A linha 6 no ir compilar; um cast explicito se faz necessrio para
converter um Raccon para um Washer.
B. A linha 7 no ir compilar; um cast explcito se faz necessrio para
converter um Washer para um SwampThing.
C. O cdigo ir compilar e rodar.

GEEK BRASIL - http://www.geekbrasil.com.br

D. O cdigo ir compilar mas ir ocorrer uma exception na linha 7,


porque em tempo de execuo uma converso da interface para uma
classe no permitida.
E. O cdigo ir compilar mas ir ocorrer uma exception na linha 7,
porque em tempo de execuo a classe w no pode ser convertida
para o tipo SwampThing.
A alternativa B est correta. A converso em linha 6 est bem
(classe para conectar), mas a converso em linha 7 (interface para
classificar) no permitido. Um elenco em linha 7 fixar o problema.

GEEK BRASIL - http://www.geekbrasil.com.br

Captulo 05
1.
As alternativas B, C, D, e F esto corretas. O d laada interate i de
0 a 1 e j de 0 a 2. Porm, o interno d laada executa um continua
declarao sempre que os valores de i e j so o mesmo. Desde que a
produo gerada dentro o interno d laada, depois de continuar
declarando, isto significa que nenhuma produo gerada quando os
valores so o mesmo. Ento, as produes sugeridas por respostas UM e
so saltados E.
2.
A alternativa D est correta. Os valores de i aparecem fixos para
levar os valores 0 e 1 para cada destes valores, j levam estima 0, 1 e 2.
Howevwer, sempre que i e j tm o mesmo valor, o exterior d laada
continuado antes da produo gerado. Desde o exterior d laada o
objetivo de continua declarao, o todo do interno d laada
abandonado. A nica linha para ser produo isso mostrado em D como
a condio comeando, i = 0 e j = 0 causam i imediatamente para assumir
o valor 1, e assim que sejam fixados i e j a 1 depois da primeira repetio
interna, o continua novamente serve terminar os valores restantes.
3.
A alternativa C est correta. Em UM a declarao varivel para i
ilegal. Isto tipo de declarao s permitido na primeira parte de um
porque () d laada. A ausncia de inicializao tambm deveria ser uma
pista aqui. Em B o d laada controle expresso-o i varivel neste case
is de int de tipo. Um vaia que expresso magra requerida. C vlido.
Apesar da complexidade de declarar um valor dentro o porque ()
construcion, e um fora de (junto com o uso do operador de vrgula na
parte de fim) isto completamente legitime. D teria estado correto, a no
ser que a etiqueta foi omitida de linha 2 que deveria ter lido d laada:
faa.

GEEK BRASIL - http://www.geekbrasil.com.br

4.
A alternativa D est correta. O primeiro teste a linha 2 faltas que
imediatamente causas controlam para saltar para enfileirar 10 e evitam
ambos os possveis testes que poderiam resultar na produo de
mensagem um ou mensagem dois. Assim, embora o teste a linha 3 fosse
verdade, nunca feito; UM no est correto. Em linha 10, o teste est
novamente falso, assim a mensagem a linha 11 saltada, mas mensagem
quatro, a linha 14, produo.
5.
A alternativa D est correta. Um est incorreto porque o cdigo est
legal apesar da expresso em linha 5. Isto porque o prprio expresion
uma constante. B est incorreto porque declara que o interruptor () parte
pode levar um argumento longo. S byte, pequeno, chamusca e int so
aceitveis. A produo o resultado do valor 2 gosta disto: Primeiro, a
opo caso 2: selecionado, qual valor de produes dois. Porm, no
h nenhuma declarao de fratura entre linhas 4 e 5, assim a execuo
entra no prximo caso e valor de produes trs de linha 6. A falta:
parte de um interruptor () s executado quando nenhuma outra opo
foi selecionada, ou se h nenhuma fratura que precede isto. Neste caso,
retifica nenhum destes cabos de situaes, assim a produo s consiste
nas duas mensagens listadas em D.
6.
As alternativas B, E, e F esto corretas. A exceo causa um salto
fora do bloco de prova, assim o Sucesso de mensagem de linha 4 no
est impresso. A primeira captura aplicvel est em linha 6 que na
partida exata para o excepition lanado. Isto resulta na mensagem a linha
7 ser impresso, assim B um das respostas exigidas. S um bloco de
captura sempre executado, assim controla passa o finalmente bloco que
resulta na mensagem a linha 16 produo de ser; assim E parte da
resposta correta. Considerando que a exceo foi pegada, considerado
que tem sido dirigido e execuo continua depois o finalmente bloco. Isto
resulta na produo da mensagem a linha 18, assim F tambm parte da
resposta correta.

GEEK BRASIL - http://www.geekbrasil.com.br

7.
As alternativas A, E, e F esto corretos. Sem excees o bloco de
prova executa a concluso, assim o Sucesso de mensagem de linha 4
est impresso e UM parte da resposta correta. Nenhuma captura
executada, assim B, C, e D esto incorretos. Controle ento passa o
finalmente bloco que resulta na mensagem a linha 16 produo de ser
assim E parte da resposta correta. Porque nenhuma exceo foi
lanada, execuo continua depois o finalmente bloco, produo de inthe
resultante da mensagem a linha 18, assim F tambm parte da resposta
correta.
8.
A alternativa E est correta. O erro lanado previne concluso do
bloco de prova, assim o Sucesso de mensagem de linha 4 no est
impresso. Nenhuma captura apropriada, assim B, C, e D esto
incorretos. Controle ento passa o finalmente bloco que resulta na
mensagem a linha 16 produo de ser; assim opo E parte da resposta
correta. Porque o erro no foi pegado, execuo encerra o mtodo e o
erro rethrown no visitante deste mtodo, assim F no parte da
resposta correta.
9.
A alternativa B est correta. Um daria informao de nmero de
linha enganosa no rastro de pilha do excepition e informa que a exceo
surgiu a linha 1 que onde o objeto de exceo foi criado. C ilegal
desde que voc tem que lanar objeto de na que uma subdiviso de
classe de java. Lang. Throwable, e voc no pode lanar uma classe, s
objeto de na. D tambm ilegal, como tenta tothrow um Fio que no
uma subdiviso de classe de java. Lang. Throwable. E completamente
legal, mas no to bom quanto B desde que E no leva o esforo para
clarificar natureza de thr do problema provendo um fio de explicao.
10.
As alternativas B e D esto corretas. Um no dirige as excees,
assim o aMethod de mtodo poderiam lanar quaisquer das excees que
astucioso () poderia lanar. Porm o excepitions no so declarados com
uma construo de lanamentos. Em B que declara lana IOException
GEEK BRASIL - http://www.geekbrasil.com.br

suficiente, porque java. Lang. RuntimeExcepition no um excepition


conferido e porque IOExceptionis um superclass de
MalformedURLExceptions, desnecessrio mencionar o
MalformedURLException explicitamente (embora poderia fazer melhor
ego-documentao fazer assim). C inaceitvel porque sua declarao
de lanamentos no menciona o excepitionsit conferido no nenhum
erro de na para declarar o excepition de runtime, althoughit estritamente
redundante. D tambm aceitvel, desde que o bloco de captura dirige
IOException que inclui MalformedURLException. RuntimeException,
ainda ser lanado pelo aMethod de mtodo () se thrownby astucioso (),
mas como RuntimeExceptionis no um excepition conferido, isto um
no erro de na. E no aceitvel, como o mtodo anulando em
anotherClass declarado como lanando IOException, overrddenmethod
de whilethe em aClass s foi declarado como lanando
MalformedURLEXxception. Teria estado correto para a classe bsica
declarar que lana IOException e ento a classe derivada para lanar
MalformedURLException e ento a classe derivada para lanar
MalformedURLException, mas como , o mtodo anulando est tentando
para lanar excees no declaradas para o mtodo original. O fato que a
nica exceo que de fato pode surgir que o MalformedURLException
no bastante para salvar isto, porque o compilador s confere as
declaraes, no a semntica do cdigo.

GEEK BRASIL - http://www.geekbrasil.com.br

Captulo 06
1. Considere esta classe:
1.
2.
3.
4.

public class Test1 {


public float aMethod(float a, float b) {
}
}

Qual dos seguintes mtodos ir trabalhar de forma legal na linha 4 ?


A. public int aMethod(int a, int b) { }
B. public float aMethod(float a, float b) { }
C. public floata aMethod(float a, float b, int c) thrwos Exception { }
D. public float aMethod(float c, float d) { }
E. private float aMethod(int a, int b, int c) { }
As alternativas A, C, e E esto corretas. Em cada destas respostas,
a uma lista de argumento que difere da original, assim o mtodo
sobrecarregado. Mtodos sobrecarregados so efetivamente
independentes, e no h nenhum constrangimento na acessibilidade, tipo
de retorno, ou excepitions que podem ser lanadas. B seria um mtodo
anulando legal, a no ser que no pode ser definido na mesma classe
como o mtodo original; bastante, deve ser declarado em uma subdiviso
de classe. D tambm na anulam, como os tipos de seus argumentos o
mesmo: Mudando os nomes de parmetro no suficiente a conta como
sobrecarregando.
2. Considere estas classes, definidas em arquivos fontes separados:
1. public class Test1 {
2.
public float aMethod(float a, float b) throws IOException { }
3. }
1. public class Test2 extends Test1 { }
Qual dos mtodos a seguir, trabalha de forma legal na linha 2 da classe
Test2 ?
A. float aMethod(float a, float b) { }
B. public int aMethod(int a, int b) throws Exception { }
GEEK BRASIL - http://www.geekbrasil.com.br

C. public float aMethod(float a, float b) throws Exception { }


D. public float aMethod(float p, float q) { }
As alternativas B e D esto corretas. Um ilegal porque menos
acessvel que o mtodo original; o fato que no lana nenhuma exceo
perfeitamente aceitvel. B legalbecause sobrecarrega o mtodo da
classe de pai, e como tal no constrangido por qualquer regra que
governa seu valor de retorno, acessibilidade, ou lista de argumento. A
exceo lanada por C suficiente ao ilegal de mtodo de makethat. D
legal porque a acessibilidade e tipo de retorno so idnticos, e o mtodo
na anulam porque os tipos dos argumentos so identicalremember
que os nomes dos argumentos so irrelevantes. A ausncia de lista de
exceo de na em D no um problema: Na que anula mtodo pode
lanar menos excees que seu original legitimamente, mas pode no
lanar mais.
3. Voc esteve a favor de um determinado documento de desenho de um
sistema de inscrio veterinrio para implementao em Java. Declara:
" Um animal tem um dono, uma data de inscrio, e uma data vacinaodevida. Um gato um animal que indica se foi neutralizado, e uma descrio
textual de seu espcie. "
Dado que a classe animal j foi definida, qual dos campos a seguir
apropriado para a incluso na classe de gato como scios?
A. Pet thePet;
B. Date registered;
C. Date vaccinationDue;
D. Cat theCat;
E. Boolean neutered;
F. String markings.
As alternativas E e F esto corretas. A classe de Gato uma
subdiviso de classe do Acaricie classe, e como tal deveria estender
Acaricia, em lugar de contendo instncia de na de Acariciam. B e C
deveriam ser os scios do Acaricie classe e tal herdado na classe de
Gato; ento, eles no deveriam ser declarados na classe de Gato. D
declararia uma referncia a instncia de na da classe de Gato que no
geralmente apropriado dentro da prpria classe de Gato (a menos que,
GEEK BRASIL - http://www.geekbrasil.com.br

talvez, lhe lhe pediram que desse para o Gato um scio que se refere a
sua me). Finalmente, o neutered sinalizam e descries de markings, E e
F, so os artigos pedidos pela especificao; estes so artigos corretos.
4. Voc esteve a favor de um determinado documento de desenho de um
sistema de inscrio veterinrio para implementao em Java. Declara:
" Um animal tem um dono, uma data de inscrio, e uma data vacinaodevida. Um gato um animal que indica se foi neutralizado, e uma descrio
textual de seu espcie. "
Dado que a classe animal j foi definida e voc espera usar a classe de Cat
livremente ao longo da aplicao, como voc faria a declarao de abertura da
classe Cat, mas no incluindo a primeira cinta de abertura? Use somente estas
palavras e espaos: boolean, Cat, Date, extends, Object, Owner, Pet, private,
protected, public, String.
Resposta: A classe pblic cat estende animal. A classe deveria ser
pblica desde que ser usado livremente ao longo da aplicao. A
declarao Um gato um animal nos fala que a classe Cat e sua
subdiviso da classe Animal. So requeridas as outras palavras
oferecidas para o corpo das definies de Cat ou Petfor use como
variables mas de scio no parte da declarao de abertura.
5. Considere a classe a seguir, ela declarada em arquivos fontes separados.
1.
2.
3.
4.

public class Base {


public void method(int i) {
System.out.println(Value is + i);
}}

1. public class Sub extends Base {


2. public void method(int j) {
3. System.out.println(This value is + j);
4. }
5. public void method(String s) {
6. System.out.println(I was passed + s);
7. }
8.
9. public static void main(String args[ ]) {
10. Base b1 = new Base( );
11. Base b2 = new Sub( );
12. b1.method(5);
13. b2.method(6);
14. } }
Qual o resultado quando o mtodo main da sub classe executado ?
GEEK BRASIL - http://www.geekbrasil.com.br

A. Os valores so 5 e 6
B. Estes valores so 5 e 6
C. O valor 5 e este valor 6
D. Este valor 5 e o valor 6
E. O valor passado foram 5 e 6.
A alternativa C est correta. A primeira mensagem produzida pela
classe Bsica quando b1. Mtodo (5) chamado e ento Valor 5.
Apesar de varivel b2 que declarada como sendo da classe bsica, o
comportamento que resulta quando mtodo () invocado nisto o
comportamento associado com classe do objeto atual, no Com o tipo da
varivel. Desde que o objeto de classe Sub, no de classBase, a
segunda mensagem gerada por linha 3 de classe Sub: Este valor 6.
6. Considere a seguinte definio de classe.
1. public class Test extends Base {
2.
public Test(int j) { }
3.
4.
public Test(int j, int k) {
5.
super(j, k);
6. }
7. }
Qual das seguintes chamadas verdadeira ?
A. Test t = new Test( );
B. Test t = new Test(1);
C. Test t = new Test(1, 2);
D. Test t = new Test(1, 2, 3);
E. Test t = (new Base( )). new Test(1);
As alternativas B e C esto corretas. Considerando que a classe
tem constructors explcito definido, o constructor de falta supressed,
assim UM no possvel. B e C tm listas de argumento que maych o
constructors definiram respectivamente a linhas 2 e 4., e assim
construes corretas. D tem trs argumentos de inteiro, mas trs so
nenhum constructors que levam trs argumentos de qualquer tipo na
GEEK BRASIL - http://www.geekbrasil.com.br

classe de Teste, assim D est incorreto. Finalmente, E uma sintaxe


usada para construo de classes internas e est ento errado.

GEEK BRASIL - http://www.geekbrasil.com.br

7. Considere a seguinte definio de classe:


1.
2.
3.
4.
5.
6.

public class Test extends Base {


public Test(int j) {
}
public Test(int j, int k) {
super(j, k);
}}

Qual das seguintes formas de construo devem existir explicitamente


na definio da classe Base?
A. Base( ) { }
B. Base(int j) { }
C. Base(int j, int k) { }
D. Base(int j, int k, int l) { }
As alternativas A e C esto corretas. No constructor a linhas 2 e 3,
no h nenhuma chamada explcita a qualquer um isto () ou super () que
meios que o compilador gerar uma chamada para o zero constructor de
superclass de argumento, como em A chamada explcita para
extranumerrio () a linha 5 requer que a classe Bsica tem que ter um
constructor como em C. Isto tem duas conseqncias. Primeiro, C deve
ser um do constructors exigido e ento um das respostas. Segundo, a
classe Bsica tem que ter aquele constructor pelo menos definido
explicity, assim o constructor de falta no gerado, mas deve ser somado
explicity. Ento o constructor de UM tambm requerido e deve ser uma
resposta correta. Em nenhum ponto na classe de Teste uma chamada
est l a ou um constructor de superclass com um ou l argumentos,
assim B e D no precisam explicitamente exista.
8. Qual das seguintes declaraes verdadeira ?
A. Uma Inner class permite uma declarao private.
B. Uma Inner class permite uma declarao static.
C. Uma Inner class definida em um mtodo sempre dever ser annima.
D. Uma Inner class definida em um mtodo pode acessar todos os
mtodos com variveis locais.
E. Construo de Inner class permite a requisio de outra classe.
GEEK BRASIL - http://www.geekbrasil.com.br

As alternativas A, B, e E esto corretas. Podem ser definidas


classes internas com qualquer acessibilidade, to privado
completamente aceitvel e A est correto. Semelhantemente, o
modificador esttico permitido em na classe interna que causa isto no
ser associado com qualquer instncia particular da classe exterior. Isto
significa aquele B tambm est correto. Classes internas definidas em
mtodos realmente podem ser freqentemente anonymousand arebut
que isto no requerido, assim C est errado. D est errado porque no
possvel para na classe interna definiu em um mtodo ter acesso as
variveis locais do mtodo, com exceo dessas variveis que esto
marcado como final. Instncia de na construindo de uma classe interna
esttica no precisa de instncia de na do objeto incluindo, mas todo o
nonstatic que classes internas requerem tal uma referncia deve estar
disponvel operao nova. A referncia para o objeto incluindo est
comumente implcita como isto que por que no est comumente
explcito. Estes pontos fazem para E retificar.
9. Considere as seguintes definies:
1. public class Outer {
2. public int a = 1;
3. private int b = 2;
4. public void method(final int c) {
5. int d = 3;
6. public class Inner {
7.
private void iMethod(int e) {
8.
9. } } } }
Qual das seguintes variveis ir ser referenciada na linha 8 ?
A. a
B. b
C. c
D. d
E. e
As alternativas A, B, C, e E esto corretas. Desde ento Interno no
uma classe interna esttica, tem uma referncia a na que inclui objeto, e
as variveis daquele objeto so acessveis. Ento A e B esto corretas,
apesar do fato que b est marcado privado. Variveis so s acessveis
essas variveis so final marcado, assim o argumento de mtodo c est
GEEK BRASIL - http://www.geekbrasil.com.br

correto, mas o d varivel no .Finally, o parmetro e claro que


acessvel, desde que um parmetro ao mtodo que contm linha 8 isto.

GEEK BRASIL - http://www.geekbrasil.com.br

10. Qual das seguintes declaraes so verdadeiras ?


A. Dado que Inner uma classe no-esttica declarada dentro de uma classe
pblica que so definidas formas de construtores Exteriores, e apropriadas,
uma instncia de Inner pode ser construdo assim:
(new Outer()).new Inner()
B. Se uma classe interna annima dentro da classe Outer definida para
implementar a interface ActionListener, pode ser construda assim:
(new Exterior ()).new ActionListener( )
C. Dado que Inner uma classe no-esttica declarada dentro de uma classe
pblica que so definidas formas de construtores Exteriores e apropriadas,
uma instncia de Inner pode ser construda em um mtodo esttico assim:
new Inner ()
D. Uma instncia de classe annima que implementa a interface MyInterface
pode ser construda e pode ser voltada de um mtodo assim:
1.
2.
3.
4.
5.

return new MyInterface(int x) {


int x;
public MyInterface(int x) {
this.x = x;
}}

A alternativa A est correta. Construo de um normal (quer dizer,


um nomeou e nastatic) classe interna requer instncia de na da classe
incluindo. Freqentemente esta instncia de enclossing provida pelo
inpliede esta referncia, mas na que referncia explcita pode ser usada
na frente da operadora nova, como mostrado na alternativa A.
Classes internas annimas podem estar s instantiated no mesmo ponto
que eles so declarados, assim,:
retorno ActionListener novo ()
actionPerformed nulo pblico (ActionEvent e);
;
Conseqentemente B de fato illegalit tenta a instantiate a interface
ActionListener como se aquela interface se fosse na classe interna
dentro Exterior.
C ilegal desde Interno um nostatic classe interna, e assim requer
uma referncia a na que inclui instncia quando construdo. A forma
mostrada suggeststhe implicaram esta referncia, mas desde que o
mtodo esttico, h nenhum esta referncia e a construo ilegal.
GEEK BRASIL - http://www.geekbrasil.com.br

D illegalsince que tenta usar argumentos para o constructor de na


classe interna annima que implementa interface de na. A pista est na
tentativa para definir um constructor a linha 3. Este no seria um
constructor para a interface MyInterface para o classthis interno est
errado em dois counts.First, interfaces no definem constructors, e
segundo ns precisamos de um constructor para nossa classe annima,
no para a interface.

GEEK BRASIL - http://www.geekbrasil.com.br

Captulo 07
1. Qual das declaraes no fragmento de cdigo abaixo verdadeira ?
1. class Greebo extends java.util.Vector implements Runnable {
2. public void run(String message) {
3. System.out.println(in run( ) method: + message);
4. } }
5.
6. class GreeboTest {
7. public static void main(String args[ ]) {
8.
Greebo g = new Greebo( );
9.
Thread t = new Thread(g);
10.
t.start( );
11. } }
A. Haver um erro de compilao, porque a classe Greebo no implementa a
interface Runnable.
B. Haver um erro de compilao na linha 11, porque voc no pode passar
um parmetro para o construtor de uma Linha.
C. O cdigo compilar corretamente mas haver uma exceo na linha 11.
D. O cdigo compilar corretamente mas haver uma exceo na linha 12.
E. O cdigo compilar corretamente e executar sem qualquer exceo.
A alternativa A est correta. A interface de Runnable define uma
corrida do mtodo com tipo de retorno nulo e nenhum parmetro. O
mtodo cedido ao problema tem um parmetro de String, assim o
compilador reclamar que aquela classe que Greebo no define corrida
nula () de interface Runable. B est errado, porque voc definitivamente
pode passar um parmetro para o constructor de uma linha; o parmetro
se torna o objetivo da linha. C, D, e E so tolice.
2. Qual das declaraes a seguir a maneira correta para a seguinte
aplicao ?
1.
2.
3.
4.
5.
6.
7.

class HiPri extends Thread {


HiPri( ) {
SetPriority(10);
}
public void run( ) {
System.out.println(Another thread starting up.);
GEEK BRASIL - http://www.geekbrasil.com.br

8. While (true) { }
9. }
10.
11. public static void main(String args [ ]) {
12. HiPri hp1 = new HiPri( );
13. HiPri hp2 = new HiPri( );
14. HiPri hp3 = new HiPri( );
15. hp1.start( );
16. hp2.start( );
17. hp3.start( );
18. } }
A. Quando a aplicao executada, o thread hp1 executar; os threads
hp2 e hp3 nunca adquiriro a CPU.
B. Quando a aplicao executada, todas os trs threads (hp1, hp2, e
hp3) conseguiro executar e haver particionamento do tempo na CPU.
C. Uma das alternativas, A ou B ser a verdadeira e depender da
plataforma subjacente.
A alternativa C est correta. A alternativa A verdadeira em uma
plataforma de preemptive, B verdade em uma plataforma tempo-fatiado.
O moral que tal cdigo deve ser evitado, desde que tais resultados so
diferentes em plataformas diferentes.
3. Verdade ou Falso. Um thread quer um segundo thread inelegvel para
execuo. Para fazer isto, o primeiro thread pode chamar o mtodo yield() no
segundo thread.
Falso. O mtodo yield( ) esttico e sempre provoca a suspenso
do thread atual. Neste caso, ironicamente, o primeiro thread que se
render.
4. Verdade ou Falso. Um thread quer um segundo thread inelegvel para
execuo. Para fazer isto, o primeiro thread pode chamar o mtodo suspend()
no segundo thread.
Verdade. O segundo thread permanecer no estado Suspendido at
que receba uma chamada do mtodo resume( ).
5. Um thread esta executando o mtodo run( ) incluindo as seguintes linhas:
1. try {
GEEK BRASIL - http://www.geekbrasil.com.br

2.
3. }

sleep(100);
catch (InterruptedException e) { }

Assumindo que o thread no interrompido, qual das seguintes


declaraes a verdadeira ?
A. O cdigo no compilar, porque exceo pode no ser pegada em um
thread que esteja sendo executado atravs do mtodo run( ).
B. Na linha 2, o thread ir parar o funcionamento. A execuo retomar em no
mximo 100 milissegundo.
C. Na linha 2, o thread ir parar o funcionamento. A execuo retomar
exatamente em 100 milissegundo.
D. Na linha 2, o thread ir parar funcionamento. A execuo retomar algum
tempo depois de 100 milissegundo.
A alternativa D verdadeira. A linha dormir durante 100
milissegundo (mais ou menos, depende da resoluo do JVM que
usado). Ento o thread entrar no estado Pronto; no vai actualy corrido
at o scheduler permitir que isto ocorra.
6. Um monitor chamado mon tem 10 threads em seu reservatrio de espera;
tudos estes threads de espera tm a mesma prioridade. Um dos thread o
thr1. Como voc pode notificar o thr1 para que ele possa passar do estado de
espera para o estado Pronto?
A. Executando o notify(thr1); de dentro cdigo sincronizado de qualquer mon.
B. Executando o mon.notify(thr1); no cdigo sincronizado de qualquer objeto.
C. Executando o thr1.notify( ); no cdigo sincronizado de qualquer objeto.
D. Executando o thr1.notify( ); de qualquer cdigo (sincronizado ou no) de
qualquer objeto.
E. Voc no pode especificar qual thread ser notificado.
A alternativa E est correta. Quando voc chama o mtodo notify( )
em um monitor, voc no tem controle sobre o thread de espera que ser
notificado.
7. Qual das declaraes da aplicao abaixo verdadeira ?
1. class TestThread extends Thread {
GEEK BRASIL - http://www.geekbrasil.com.br

2. public void run( )


3.
System.out.println(Starting);
4.
suspend( );
5.
resume( );
6.
System.out.println(Done);
7. }
8.
9. public static void main(String args[ ]) {
10. TestThread tt = new TestThread( );
11.
Tt.start( );
12. } }
A. A compilao falhar na linha 4, porque o mtodo suspend( ) deve ser
chamado no cdigo sincronizado.
B. A compilao falhar na linha 5, porque o mtodo resume( ) deve ser
chamado no cdigo sincronizado.
C. A compilao ter sucesso. A execuo, ser a impresso.
D. A compilao ter sucesso. A execuo, somente uma linha de produo
(Starting) ser impressa.
A alternativa D est correta. Embora os mtodo suspend( ) e
resume( ) devam ser chamados de um cdigo sincronizado, no h
nenhuma regra correspondente para suspend( ) e resume( ). O cdigo
correr at a linha 4 na qual vai ser suspendida. Considerando que
suspendeu, nunca poder executar linha 5. Uma linha suspendida nunca
pode se retomar, desde fazer assim tem que estar correndo; uma linha
suspendida s pode ser retomada por uma linha diferente.
8. Qual das declaraes da aplicao abaixo verdadeira ?
1. class TestThread2 extend Thread {
2. public void run( ) {
3.
System.out.println(Starting);
4.
yield( );
5.
resume( );
6.
System.out.println(Done);
7. }
8.
9. public static void main(String args[ ]) {
10. TestThread2 tt = new TestThread2( );
11. tt.start( );
12. } }

GEEK BRASIL - http://www.geekbrasil.com.br

A. A compilao ir falhar na linha 4, porque o mtodo yield( ) deve ser


chamado no cdigo sincronizado.
B. A compilao ir falhar na linha 5, porque o mtodo resume( ) deve
ser chamado no cdigo sincronizado.
C. O cdigo ser bem sucedido. A execuo ter como sada uma
impresso.
D. O cdigo ser bem sucedido. A execuo ter como sada apenas
uma linha de impresso.
Neste momento E est correta. A nica diferena entre este
problema e o anterior a utilizao do mtodo yield( ) na linha 4 em lugar
do mtodo suspend( ). A linha que esta executando passa ao estado
Pronto; logo posteriormente, o scheduler passa isto atrs ao estado
Corrente. Executa a linha 5 e ento chama o mtodo resume( ). Esta
chamada no tem nenhum efeito, porque a linha no foi suspendida.
9. Se voc tentar compilar e executar a aplicao listada abaixo, sempre
imprimir a mensagem In xxx ?
1. class TestThread3 extends Thread {
2. public void run( ) {
3. System.out.println(Running);
4. System.out.println(Done);
5. }
6.
7. private void xxx( ) {
8. System.out.println(In xxx);
9. }
10.
11. public static void main(String args [ ]) {
12. TestThread3 ttt = new TestThread3( );
13. ttt.xxx( );
14. ttt.start( );
15. } }
Sim. A chamada para x x x () acontece antes da linha e registrado
com o thread scheduler, assim a pergunta no tem nada que ver com os
threads.
10. Verdadeiro ou Falso. Um monitor de Java deve estender um Thread ou
implementar Runnable.
Falso. Um monitor instncia de na de qualquer classe que
sincronizou cdigo.
GEEK BRASIL - http://www.geekbrasil.com.br

GEEK BRASIL - http://www.geekbrasil.com.br

Captulo 08
1. Dado uma String construda e chamada s = new String ("xyzzy "), qual das
chamadas listadas abaixo modificam a String?
A. s.append(aaa);
B. s.trim( );
C. s.substring(3);
D. s.replace(z, a);
E. s.concat(s);
Nenhuma das respostas est correta. Strings so imutveis.
2. Qual das declaraes do cdigo abaixo verdadeira ?
1.
2.
3.
4.
5.
6.

String s1 = abc + def;


String s2 = newString(S1);
If (s1 == s2)
System.out.println(== succeeded);
if (s1.equals(s2))
System.out.println(.equals( ) succeeded);

A. As linhas 4 e 6 sero executadas.


B. A linha 4 ser executada e a linha 6 no.
C. A linha 6 ser executada e a linha 4 no.
D. Nem a linha 4 nem a linha 6 ser executada.
A alternativa C est correta. Considerando que a 1 e 2 so
referncias a dois modificadores, falta um teste. Porm, as cordas
contidas dentro dos dois objetos Strings so idnticos, assim o iguals( )
passagens de teste.
3. Suponha que voc quer escrever uma classe que oferece para mtodos
estticos computar funes trigonomtricas hiperblicas. Voc decide que a
subdiviso da classe java.lang.Math e prov a funcionalidade nova como jogo
de mtodos estticos. Qual declarao abaixo verdadeira sobre esta
estratgia?
A. A estratgia trabalha.
GEEK BRASIL - http://www.geekbrasil.com.br

B. A estratgia trabalha, fornecendo os novos mtodos pblicos.


C. A estratgia trabalha, fornecendo os novos mtodos privados.
D. A estratgia falha, porque voc no enlata uma subdiviso da classe
java.lang.Math.
E. A estratgia falha, porque voc no pode somar mtodos estticos para uma
subdiviso de classe.
A alternativa D est correta. O java. Lang. Classe de matemtica
final, assim no pode ser subclassed.
4. Qual das declaraes do fragmento de cdigo abaixo verdadeira ?
1. import java.lang.Math;
2. Math myMath = new Math( );
3. System.out.println( consine of 0.123 = + myMath.cos(0.123));
A. A compilao ir falhar na linha 2.
B. A compilao ir falhar na linha 3.
C. A compilao ter xito, sendo que o import na linha 1 no
necessrio. Durante a execuo, uma exception ir ocorrer na linha
3.
D. A compilao ter xito, sendo que o import na linha 1 necessrio.
Durante a execuo, uma exception ir ocorrer na linha 3.
E. A compilao ter xito, e no haver nenhuma exception durante a
execuo.
A alternativa A est correta. O constructor para a classe de
Matemtica privado, assim no pode ser chamado. Os mtodos de
classe de Matemtica so estticos, assim isto nunca necessrio
construir instncia de na. A importao a linha 1 no requerida, como
todas as classes do java. Lang empacotam importado automaticamente.
5. Qual das declaraes no fragmento de cdigo abaixo verdadeira ?
1. String s = abcde;
2. StringBuffer s1 = new StringBuffer(abcde);
3. If (s.equals(s1))
4.
s1 = null;
GEEK BRASIL - http://www.geekbrasil.com.br

5. if (s1.equals(s))
6.
s = null;

A. A compilao ir falhar na linha 1, porque o construtor da String deve


ser explicito.
B. A compilao ir falhar na linha 3, porque s e s1 so de tipos
diferentes.
C. A compilao ter xito. Durante a execuo, uma exception ir
ocorrer na linha 3.
D. A compilao ter xito. Durante a execuo, uma exception ir
ocorrer na linha 5.
E. A compilao ter xito. No ocorrer nenhuma exception.
A alternativa E est correta. Um est errado porque linha 1 um
modo perfeitamente aceitvel para criar um fio, e realmente mais
eficiente que chamando o constructor explicitamente. B est errado
porque o argumento para o s igual () mtodo de Objeto de tipo; assim
qualquer referncia de objeto ou varivel de ordem pode ser passada. As
chamadas em linhas 3 e 5 retorno falso sem lanar excees.
6. O fragmento de cdigo abaixo ir compilar com sucesso ? Neste caso, a
linha 02 ser executada com sucesso ?
1. if (Hedgehog.startsWith(Hedge))
2.
System.out.println(Line 2);
O cdigo compila, e a linha 2 executada.
7. Verdadeiro ou Falso. No fragmento de cdigo abaixo, aps a execuo da
linha 1, sbuf referencia uma instancia da classe StringBuffer. Aps a execuo
da linha 2, sbuf ainda referencia a mesma instancia.
1. StringBuffer sbuf = new StringBuffer(abcde);
2. Sbuf.insert(3, xyz);
Verdadeiro. A classe de StringBuffer mutable. Depois da
execuo da linha 2, sbuf referencia o mesmo objeto, embora o objeto
tenha sido modificado.
8. Verdadeiro ou falso: No fragmento de cdigo abaixo, aps a execuo da
linha 1, sbuf referencia uma instancia da classe StringBuffer. Aps a execuo
da linha 2, sbuf ainda referencia a mesma instancia.
GEEK BRASIL - http://www.geekbrasil.com.br

1. StringBuffer sbuf = new StringBuffer(abcde);


2. Sbuf.append( xyz);
Verdadeiro. Veja resposta 7 acima.
9. Verdadeiro ou Falso: No fragmento de cdigo abaixo, a linha 4 executada
?
1. String s1 = xyz;
2. String s2 = xyz;
3. If (s1 == s2)
4.
System.out.println(Line 4);
Verdadeiro. A linha 1 constri uma instncia nova da String e
armazena isto no depsito de String. Na linha 2, _xyz_ representado j
no depsito, assim nenhuma instncia nova construda.
10. Verdadeiro ou falso. No fragmento de cdigo abaixo a linha 4 executada.
1. String s1 = xyz;
2. String s2 = new String(s1);
3. If (s1 == s2)
4.
System.out.println(Line 4);
Falso. A linha 1 constri uma instncia nova da String e armazena
isto no depsito de String. Na linha 2 construido explicitamente uma
outra instncia.

GEEK BRASIL - http://www.geekbrasil.com.br

Captulo 09
1. Um campo de texto construdo e ento determinado uma cor de primeiro
plano de branco e uma 64-point fontel bold serif . O campo de texto somado
ento a um applet que tem uma cor de primeiro plano de vermelho, cor de
fundo de azul, e 7-point fonte de sansserif claro. Qual declarao abaixo
verdadeira para o campo texto?
A. Cor de primeiro plano preta, cor de fundo branca, fonte 64-point serif
bold corajoso.
B. Cor de primeiro plano vermelha, cor de fundo azul, fonte 64-point serif
bold corajoso.
C. Cor de primeiro plano vermelha, cor de fundo azul, fonte 7-point serif
bold corajoso.
D. Cor de primeiro plano branca, cor de fundo azul, fonte 7-point serif bold
corajoso.
E. Cor de primeiro plano branca, cor de fundo azul, fonte 64-point bold
serif .
A alternativa E est correta. Considerando que o boto no
especifica um fundo, adquire o mesmo fundo como o applet: azul. So
fixados a cor de primeiro plano do boto e manancial explicitamente a
branco e 64-point serifa corajoso, assim estas colocaes entram em
vigor em lugar de os valores do applet.
2. Voc tem uma caixa de cheque em um painel; o painel est em um applet. O
applet no contm nenhum outro componente. Usando o SetFont( ), voc
permite que ao applet uma fonte 100-point, e voc d para o painel uma fonte
6-point. Qual declarao ou declaraes abaixo est correta?
A. A caixa de cheque usa uma fonte 12-point.
B. A caixa de cheque usa uma fonte 6-point.
C. A caixa de cheque usa uma fonte 100-point.
D. A caixa de cheque usa a fonte do applet, porque voc no pode fixar uma
fonte em um painel.
E. A caixa de cheque usa a fonte do painel, porque voc no fixou uma fonte
explicitamente para a caixa de cheque.

GEEK BRASIL - http://www.geekbrasil.com.br

As alternativas B e E esto corretas. Considerando que voc no


tem jogo explicitamente um manancial para a caixa de cheque, usa o
manancial de seu imediato.
3. Voc tem uma caixa de cheque em um painel; o painel est em um applet. O
applet no contm nenhum outro componente. Usando o SetFont( ), voc d
para o applet uma fonte 100-point. Qual declarao ou declaraes abaixo est
correta?
A. A caixa de cheque usa uma fonte 12-point.
B. A caixa de cheque usa uma fonte 6-point.
C. A caixa de cheque usa uma fonte 100-point.
D. A caixa de cheque usa a fonte do applet.
E. A caixa de cheque usa a fonte do painel, porque voc no fixou uma fonte
explicitamente para a caixa de cheque.
As alternativa C, D, e E esto corretas. O painel no adquire seu
manancial explicitamente fixado, assim usa o manancial do applet. A
caixa de cheque no adquire seu manancial explicitamente fixado, assim
usa o manancial do painel que o manancial do applet.
4. Voc quer construir uma rea de texto que tem largura de 80 carteres e
altura de 10 carteres. Que cdigo usa voc?
A. new TextArea(80, 10)
B. new TextArea(10, 80)
A alternativa B esta correta. O nmero de filas vem primeiro, ento
o nmero de colunas.
5. Voc constri uma lista chamando new List(10, false). Qual declarao ou
declaraes abaixo est correta? (Assuma que o layout managers no
modifica a lista de qualquer forma.)
A. A lista tem 10 artigos.
B. A lista apia seleo mltipla.
GEEK BRASIL - http://www.geekbrasil.com.br

C. A lista tem 10 artigos visveis.


D. A lista no apia seleo mltipla.
E. A lista adquirir uma barra de rolagem vertical se precisar.
As alternativas C, D, e E esto corretas. O primeiro parmetro (10)
especifica o nmero de artigos visveis. O segundo parmetro (falso)
especifica se seleo de mutiple apoiada. Uma lista sempre adquire uma
barra de rolagem vertical se o nmero de artigos excede o nmero de
artigos visveis.
6. Um campo de texto tem uma fontel de largura varivel. construdo
chamando new TextField(iiiii "). O que acontece se voc muda os contedos do
campo de texto para " wwwww "? (Tenha em mente que i um dos carteres
de narrowest, e w um dos mais largos.)
A. O campo de texto fica mais largo.
B. O campo de texto se torna narrower.
C. O campo de texto fica com a mesma largura; ver os contedos inteiros voc
ter que enrolar usando o <- e -> chaves.
D. O campo de texto fica com a mesma largura; veja os contedos inteiros
voc ter que enrolar usando a barra de rolagem horizontal do campo de texto.
A alternativa C est correta. Se um campo de texto muito estreito
para exibir seus contedos, voc precisa enrolar usando as chaves de
seta.
7. O qual dos seguintes itens pode conter um menu? (Escolha uma ou mais.)
A. Um separador
B. Uma caixa de cheque
C. Um menu
D. Um boto
E. Um painel

GEEK BRASIL - http://www.geekbrasil.com.br

As alternativas A e C esto corretas. Um menu pode conter artigos


de um menu, artigos de um menu de conferir-caixa (no confira caixas!),
separador, e (sub)menus.

8. O qual dos seguintes itens pode conter uma barra menu? (Escolha uma ou
mais.)
A. Um painel
B. Um frame
C. Um applet
D. Uma barra de menu
E. Um menu

menu.

A alternativa B est correta. S um frame pode conter uma barra de

9. Sua aplicao constri um frame chamando Frame f = Frame new( ); mas


quando voc corre o cdigo, o frame no aparece na tela. Que cdigo far o
frame aparecer?
A. f.setSize(300, 200);
B. f.setFont(new Font (SansSerif ", Font.BOLD, 24));
C. f.setForeground(Color.white);
D. f.setVisible(true);
E. f.setSize(300, 200); f.setVisible(true);
A alternativa E est correta. Um frame recentemente construda tem
zero-por-zero tamanho e no visvel. Voc tem que chamar ambos o
setSize () (ou setBounds ()) e setVisible ().
10. Verdadeiro ou Falso: A classe de CheckboxGroup uma subdiviso da
Classe de Componentes.
GEEK BRASIL - http://www.geekbrasil.com.br

Falso. O java. Awt. Classe de CheckboxGroup no um Tipo de


componente.

GEEK BRASIL - http://www.geekbrasil.com.br

Captulo 10
1. Um programa em Java cria uma check box que usa o cdigo listada abaixo.
O programa corrido em duas plataformas diferentes. O qual das
declaraes do cdigo a seguir so verdadeiras?
1. Checkbox cb = new Checkbox(Autosave);
2. Font f = new Font(Courier, Font.PLAIN, 14);
3. Cb.setFont(14);
Resposta.
A alternativa E est correta, pois no h nenhum modo de garantir que
os botes sero do mesmo tamanho em ambas as plataformas
2. Qual o resultado que o compilador tentar executar na seguinte aplicao
?
1. import java.awt.*;
2.
3. public class Q2 extends Frame {
4. Q2( ) {
5.
SetSize(300,300);
6.
Button b = new Button(Apply);
7.
add(b);
8. }
9. public static void main(String args[ ]) {
10. Q2 that = new Q2( );
11. that.setVisible(true);
12. }
13. }
E est correto. A alternativa A est errado porque o constructor
chamado sua prpria classe de dentro; a aplicao compilaria at mesmo
se o constructor eram privados. B est errado porque a armao tem uma
gerente de plano de falta que uma instncia de BorderLayout. Se voc
soma () um componente para um recipiente que usa um gerente de plano
de Borda, e voc no especifica uma regio como um segundo parmetro,
ento o componente somado a Centro, da mesma maneira que se voc
tivesse especificado BorderLayout. CENTRE como um segundo
parmetro. (Nota, porm, que provendo o parmetro explicitamente est
programando muito melhor thanrelying de estilo em comportamento de
falta.) C est errado porque o boto aparece; leva a armao inteira, como
descreveu em E. Resposta D seria verdade se armaes usaram as
gerentes de plano de Fluxo atravs de falta.
3. Qual o resultado que o compilador tentar executar na seguinte aplicao
?
GEEK BRASIL - http://www.geekbrasil.com.br

1. import java.awt.*;
2. public class Q3 extends Frame {
3. Q3 {
4.
setSize(300,300);
5.
setLayout(new GridLayout(1,2));
6.
7.
Panel p1 = new Panel( );
8.
p1.setLayout(new FlowLayout(FlowLayout.RIGHT));
9.
p1.add(new Button(Hello));
10.
add(p1);
11.
12.
Panel p2 = new Panel( );
13.
p2.setLayout(new FlowLayout(FlowLayout.LEFT));
14.
p2.add(new Button(Goodbye));
15.
add(p2);
16. }
17.
18. public static void main(String args[ ])
19. { Q3 that = new Q3( );
20. that.setVisible(true);
21. }
22. }
C a alternativa correta. A alternativa A est errado porque o falta plano
gerente canbe de qualquer recipiente substituram; isso o nico modo
para adquirir coisas feito se o gerente de falta no o que voc quer. B
prejudicam porque no h nenhuma restrio contra havinga nica fila ou
uma nica coluna. O que realmente acontece isto: A armao contm
dois panelsp1 ocupa a esquerda inteira a metade da armao e p2
ocupa o direito inteiro meio (porque a armao usa um grid com uma fila
e duas colunas). Cada painel usa um gerente de layuot de Fluxo, assim
dentro dos painis todo componente consegue ser seu tamanho
preferido. Assim os dois botes h pouco so grandes bastante para
cercar as etiquetas deles/delas. Decore com painel p1 usos um gerente de
plano de Fluxo direito-alinhando, assim seu nico componente alinhado
ao direito distante daquele painel, s partiu da linha de centro vertical.
Decore com painel p2 usos um gerente de plano de Fluxo esquerdaalinhando, assim seu nico componente alinhado o distante partiu
daquele painel, s rigkt da linha de centro vertical. O dois fim de botes
para cima como descreveu em resposta C. D e E esto incorretos porque
os botes conseguem ser os tamanhos preferidos deles/delas.
4. Qual o resultado que o compilador tentar executar na seguinte aplicao
?
1. import java.awt.*;
2. public class Q4 extends Frame {
GEEK BRASIL - http://www.geekbrasil.com.br

3. Q4 ( ) {
4. setSize(300,300);
5. setLayout(new GridLayout(3,1));
6.
7. Panel p1 = new Panel( );
8. p1.setLayout(new BorderLayout( ) );
9. p1.add(new Button(Alpha), BorderLayout.NORTH);
10. add(p1);
11.
12. Panel p2 = new Panel( );
13. p2.setLayout(new BorderLayout( ) );
14. p2.add(new Button(Beta), BorderLayout.CENTER);
15. add(p2);
16.
17. Panel p3 = new Panel( );
18. p1.setLayout(new BorderLayout( ) );
19. p1.add(new Button(Gamma), BorderLayout.SOUTH);
20. add(p3);
21.
22. public static void main(String args[ ] ) {
23. Q4 that = new Q4( );
24. that.setVisible(true);}
25. }
B est correto. A armao disposta em um grid com threerows e uma
coluna. Assim cada do trs painel p1, p2, e p3 so to largos quanto a
armao e 1/3 como alto. O Alfa boto vai a Norte do painel de topo,
assim to largo quanto o prprio painel (assim to largo quanto a
armao), e consegue ser sua altura preferida. O Beta boto vai a
Centro do painel mediano, assim ocupa o painel inteiro (desde que l
nada mais no painel). O Gama boto vai em Sul do painel de fundo,
assim isto to largo quanto o prprio painel (assim to largo quanto a
armao), e consegue ser sua altura preferida.
5. Voc gostaria de compilar e executar o cdigo seguinte. Depois que o frame
aparece na tela, voc gostaria que o resize do frame fosse
aproximadamente duas vezes sua largura original e aproximadamente duas
vezes sua altura original. Qual das declaraes do cdigo seguinte est
correta?
1. import java.awt.*;
2.
3. public class Q5 extends Frame {
4. Q5( ) {
5.
setSize(300,300);
6.
setFont(new Font(Helvetica, Font.BOLD, 36));
7.
Button b = new Button(Abracadabra);
8.
add(b, BorderLayout.SOUTH);
GEEK BRASIL - http://www.geekbrasil.com.br

9. }
10.
11. public static void main(String args[ ]) {
12. Q5 that = new Q5( );
13. that.setVisible(true);
14. }
15. }
D est correto. A alternativa A est errado porque toda armao adquire
uma falta Borda plano gerente. Desde que o boto colocado em Sul,
itnis sempre to largo quanto a armao, e adquire resized quando a
armao adquire resized. Sua altura sempre sua altura preferida. Nota o
do thrree respostas plausveis (C,D, e E), a resposta correta o mais
simples. O ponto desta pergunta que quando um recipiente adquire
resize, seu gerente de plano dispe todos os componentes novamente.
6. O cdigo a seguir constri um GUI com um nico boto. Qual declarao
verdadeira a respeito do tamanho do boto?
1. import java.awt.*;
2. public class Q6 extends Frame {
3. Q6( ) {
4. setSize(500,500);
5. setLayout(new FlowLayout( ) );
6. Button b = new Button( Where am I ?);
7. Panel p1 = new Panel( );
8. p1.setLayout(new FlowLayout(FlowLayout.LEFT));
9. Panel p2 = new Panel( );
10. p2.setLayout(new FlowLayout( ));
11. Panel p3 = new Panel( );
12. p3.setLayout(new FlowLayout( ));
13.
14. p1.add(b);
15. p2.add(p1, BorderLayout.NORTH);
16. p3.add(p2);
17. add(p3);
18. }
19. public static void main(String args[ ]) {
20. Q6.that = new Q6( );
21. That.setVisible(true);
22. } }
A alternativa A est correto. As nicas linhas de cdigo que assunto 9,
10, e 16. O boto somado a um painel que usa um gerente de plano de
Fluxo. Ento o boto consegue ser seu tamanho preferido.

GEEK BRASIL - http://www.geekbrasil.com.br

7. Em uma aplicao que tem um frame que usa um Border layout manager.
Por que provavelmente no ser uma boa idia pr uma barra de rolagem
vertical ao Norte do frame?
Com um gerente de plano de borda, qualquer componente a Norte (ou
Sul) to largo quanto o recipiente e to alto quanto sua prpria altura
preferida. Barra de rolagem de Avertical precisa de bastante playin o
verticaldirection, mas no precisa ser muito largo. O problema produz
uma barra de rolagem que ambos muito largo e muito pequeno para ser
til, assim a resposta correta C. Com um gerente de plano de Borda,
barras de rolagem verticais esto muito teis em Leste e Oeste; barras de
rolagem horizontais esto muito teis em Norte e Sul.
8. Qual o Layout Manager default para um applet ? Para um frame ? Para
um Panel ?
O gerente de plano de falta para painis e applets Fluxo. A falta para
armaes Borda.
9. Verdadeiro ou Falso: Se um frame usa uma Grid Layout Manager e no
contm nenhum painel, ento todos os componentes dentro do frame so a
mesma largura e altura.
Verdadeiro. O Grid plano gerente ignora o tamanho preferido de
componentes e faz para todos os componentes o mesmo tamanho. Se a
armao contivesse qualquer painel, ento seria provvel que os
componentes dentro desses painis sejam menor que esses diretamente
contidos pelo painel. Porm, a pergunta explicitamente estados que a
armao no contm nenhum painel.
10. Verdadeiro ou Falso: Se um Frame usa seu Layout Manager default e no
contm nenhum painel, ento todos os componentes dentro do frame so
da mesma largura e altura.
Falso. O gerente de plano de falta Borda. Componentes em Norte e Sul
sero a mesma largura; componentes em Leste e Oeste sero a mesma
altura. Nenhuma outra generalizao possvel.
11. Verdadeiro ou Falso: Com um Border Layout Manager, o componente do
Centro adquire todo o espao em cima do que permanece, depois de
componentes em Norte e Sul sido considerado.
Falso. Quase, mas no totalmente. O componente a Centro adquire todo o
espao em cima do que permanece, depois dos componentes a norte, que
foram considerados Sul, Leste e Oeste.

GEEK BRASIL - http://www.geekbrasil.com.br

12. Verdadeiro ou Falso: Com um Grid Layout Manager, honrada a largura


preferida de cada componente, enquanto altura ditada; se h muitos
componentes para ajustar em nica fila, so criadas filas adicionais.
Falso. A pergunta descreve um hodgepodge de atributos de gerente de
plano.

GEEK BRASIL - http://www.geekbrasil.com.br

Captulo 11
1. Verdadeiro ou Falso: O modelo de evento de delegao, introduzido na
verso 1.1 do JDK, completamente compatvel com o modelo de evento
da verso 1.0.
Falso. Os dois modelos de evento so incompatveis, e eles no
deveriam aparecer no mesmo programa.
2. Qual declarao ou declaraes so verdades sobre o cdigo listado abaixo
?
1.
2.
3.
4.
5.
6.
7.
8.
9.

public class MyTextArea extends TextArea {


public MyTextArea( int nrows, int ncols) {
enableEvents(AWTEvent.TEXT_EVENT_MASK);
}
public void processTextEvent(TextEvent te) {
System.out.println(Processing a text event.);
}
}

As alternativas A, B, e E esto corretas. Considerando que a classe


pblica, tem que residir em arquivo cujo nome corresponde ao nome
de classe. Se a chamada para extranumerrio (nrows, ncols) omitido,
sero invocados o constructor de nenhum-argumentos para TextArea,
e o nmero desejado de filas e colunas ser ignorado. C e D so tenta
criar confuso introduzindo conceitos do 1.0 modelo; no modelo de
delegao, todos os manipuladores de evento tm tipo de retorno
nulo. E est correto porque se a linha sugerida omitida, willbe de
ouvintes de texto ignoraram.
3. Qual declarao ou declaraes so verdades sobre o cdigo listado
abaixo?
1. public class MyFrame extends Frame {
2.
public MyFrame(String title) {
3.
super(title);
4.
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
5. }
6.
7. public void processWindowEvent(WindowEvent we) {
8.
System.out.println(Processing a window event.);
9. }
10. }
As alternativas C e D esto corretas. O cdigo compilar e executar
completamente. Porm, sem uma chamada para extranumerrio.
GEEK BRASIL - http://www.geekbrasil.com.br

ProcessWindowEvent (Ns), o componente no notificar seus


ouvintes de janela.
4. Qual declarao ou declaraes so verdades sobre o cdigo listado
abaixo? (Assuma que as classes F1 e F2 implementam a interface
FocusListener.)
1.
2.
3.
4.
5.

TextField tf = new TextField( Not a trick question);


FocusListener flis1 = new F1( );
FocusListener flis2 = new F2( );
tf.addFocusListener(flis1);
tf.addFocusListener(flis2);

A alternativa C est correta. Linhas 2 e 3 constroem instncias das


classes de ouvinte, e referncias de loja para essas instncias em
variveis com tipos de interface; tal tarefa perfeitamente legal. A
implicao de resposta que B que somando um segundo
listenermight criam um problema, a delegao suports modelo os
ouvintes mltiplos. O cdigo compila completamente e corre sem
lanar excepition de na.
5. Qual declarao ou declaraes so verdades sobre o cdigo listado
abaixo? (Assuma que as classes F1 e F2 implementam a interface
FocusListener.)
1.
2.
3.
4.
5.
6.

TextField tf = new TextField(Not a trick question);


FocusListener flis1 = new F1( );
FocusListener flis2 = new F2( );
tf.addFocusListener(flis1);
tf.addFocusListener(flis2);
tf.removeFocusListener(flis1);

A alternativa E est correta. Este problema h pouco est como o


prvio, com a adio de um istener de removeFocusL perfeitamente
legal () chamada.
6. Qual declarao ou declaraes so verdadeiras sobre o cdigo listado
abaixo ?
1.
2.
3.
4.
5.

class MyListener extends MouseAdapter implements MouseListener {


public void mouseEntered(MouseEvent mev) {
System.out.println(Mouse entered.);
}
}

As alternativas A e C esto corretas. Desde que a classe estende


MouseAdapter, e MouseAdapter implementa o istener de MouseL
conectam, o istener de MyL classificam implicitly implementa bem a
GEEK BRASIL - http://www.geekbrasil.com.br

interface como; no faz nenhum dano para declarar o


implementao explicitamente. A classe pode servir como uma
ouvinte de rato. Em resposta para eventos de rato diferente de rato
entrada, o ouvinte executa os mtodos de manipulador que herda
de seu superclass; estes mtodos no fazem nada.
7. Qual declarao ou declaraes so verdades sobre o cdigo listado
abaixo?
Sugesto: As cada uma das interfaces ActionListener e ItemListener define um
nico mtodo.
1.
2.
3.
4.
5.
6.
7.
8.

class MyListener implements ActionListener, ItemListener {


public void actionPerformed(ActionEvent ae) {
System.out.println(Action);
}
public void itemStateChanged(ItemEvent ie) {
System.out.println(Item);
}
}

A alternativa A est correta. Implementao de interface mltiplo


legal em Java. O classmust implementam todos os mtodos de
ambas as interfaces, e este realmente o caso. Desde os utenslios
de classe conectam o istener de ActionL, um ouvinte de ao
legal; desde isto tambm implementa o istener de ItemL conectam,
tambm um ouvinte de artigo legal.
8. Qual declarao ou declaraes so verdades sobre o cdigo listado
abaixo?
1.
2.
3.
4.
5.
6.
7.
8.

class MyListener extends MouseAdapter, KeyAdapter {


public void mouseClicked(MouseEvent mev) {
System.out.println(Mouse clicked.);
}
public void keyPressed(keyEventEvent kev) {
System.out.println(KeyPressed);
}
}

A alternativa A est correta. Esta classe tenta herana de classe


mltipla que ilegal em Java.
9. Verdadeiro ou Falso: Uma sub-classe de componente que executou
enableEvents () habilita o processamento de um certo tipo de evento que
no pode usar um adaptador como um ouvinte para o mesmo tipo de evento.

GEEK BRASIL - http://www.geekbrasil.com.br

Falso. Um componente, se ou no chamou enableEvents


explicitamente (), pode ter um unlimitednumber de ouvintes, e essas
ouvintes podem ser subdivises de classe de adaptador.
10. Assuma que a classe AcLis implementa as interfaces de ActionListener. O
fragmento de cdigo debaixo que constri um boto e d isto a quatro
ouvintes de ao. Quando o boto apertado, qual ouvinte de ao o
primeiro a adquirir seu actionPerformed () que o mtodo invocou?
1. Button btn = new Button(Hello);
2. AcLis a1 = new AcLis( );
3. AcLis a2 = new AcLis( );
4. AcLis a3 = new AcLis( );
5. AcLis a4 = new AcLis( );
6. btn.addActionListener(a1);
7. btn.addActionListener(a2);
8. btn.addActionListener(a3);
9. btn.addActionListener(a4);
10. btn.removeActionListener(a2);
11. btn.removeActionListener(a3);
12. btn.addActionListener(a3);
13. btn.addActionListener(a2);
A alternativa E est correta. No h nenhuma garantia sobre a ordem de
prece de ouvintes de evento.

GEEK BRASIL - http://www.geekbrasil.com.br

Captulo 12
1. Como voc fixaria a cor de um contexto de grficos chamado g a cyan?
A alternativa A est correto. As 13 cores pre-definidas so varibles
esttico em Cor de classe, assim voc os tem acesso pelo nome de
classe como voc os tem acesso nome de classe como voc iria qualquer
outra varivel esttica. O nome do mtodo de cor-colocao setColor (),
no setCurrentColor ().
2. O cdigo das linhas abaixo faz um desenho. Que cor a linha?
1. g.setColor(Color.red.green.yellow.red.cyan);
2. g.drawLine(0,0,100,100);
A alternativa D (cyan) est correta. Esta pergunta testa seu
conhecimento de variveis estticas como wellas a classe de Cor. A
classe de Cor tem 13 variveis estticas finais, nomeado vermelho,
verde, amarele, e assim por diante. Este varibles acontecem para
ser de Cor de tipo. Assim Cor. Vermelho o nome de instncia de
na de Cor. Recorde de Captulo 3 (modificadores) que h dois
modos para ter acesso uma varivel esttica: pelo nome de classe
que o modo preferido ou por uma referncia para qualquer
instncia da classe. Assim um (non-preferiu) modo para ter acesso
a varivel esttica verde est por Cor. Vermelho, porque Cor.
vermelho uma referncia a instncia de na. Assim Cor. Vermelho.
verde um modo legal para se referir varivel esttica verde.
Semelhantemente, o modo preferido para se referir varivel
esttica amarela Cor. Amarele, mas legal (embora muito
estranho) para referncia isto como cor. Vermelho. Verde. Amarele,
porque Cor. Vermelho. Verde uma referncia a instncia de na. E
assim por diante. A resposta ainda seria cyan se a cor fosse fixada
para Colorir seja fixado para Colorir. Vermelho. Bocado. Vermelho.
Negro. Cyan. Magenta. Azul. Rosa. Laranja. Cyan.
3. Que desenho o cdigo seguinte faz?
1.
2.
3.
4.

g.setColor(Color.black);
g.drawLine(10,10,10,50);
g.setColor(Color.red);
g.drawRect(100,100,150,150);

A alternativa B (uma linha vertical preta que 40 long,and de pixels


uma praa vermelha com lados de 150 pixels). O setColor () mtodo
s afeta subseqentemente grficos tirados; no afeta grficos
previamente tirados. Assim a linha preta e a praa vermelha. Os
argumentos para setLine () coordena de fim-pontos, assim a linha
vai de (10,10) para (10,50) e sua durao 40 argumentos de
GEEK BRASIL - http://www.geekbrasil.com.br

pixels.The a drawRect () x posicionam, posio de y, largura, e


altura, assim o lado da praa 150 pixels.
Alguns leitores podem sentir que uma resposta diferente
apropriada: Nenhum do anterior, Becauseyou nunca disse que g
era Grficos de instanceof de na. Isto legtimo; o real assunto o
que fazer quando voc tem esta reao durante o Exame de
Certificao. Sempre tem em mente que as perguntas de exame
esto sobre Java, no sobre retrica. O exame testa seu
Conhecimento de Java, no sua habilidade para ver por phrasing
enganador.
4. A figure abaixo mostra duas formas. Qual forma (A ou B) id desenhado
pela linha do cdigo seguinte ?

g.fillArc(10,10,100,100,0,90);
A alternativa A est correta. O fillArc () mtodo puxa pedaos de
torta, no cordas.
5. Qual das declaraes abaixo verdade? (Escolher um ou mais)
As alternativas B, D, e E esto corretas. Um polyline nunca est
cheio ou fechado; s openrun de na de segmentos de linha. Um
polgono pode ser enchido (o fillPolygon () method)or no encheram (o
drawPolygon () mtodo).
6. Verdadeiro ou Falso: Quando o thread GUI chama o mtodo paint() para
consertar dano de exposio, o mtodo paint() tem que determinar o que foi
danificado e foi fixado na sua regio de clipe adequadamente.
Falso. Quando h dano para ser consertado, o GUI enfiam passa
para pintar () um contexto de grficos cuja regio de clipe j fixada
regio danificada. Java foi construdo para ter certeza deste modo aquele
programmersnever tm que determinar regies de clipe danificadas. De
fato, os programadores nunca tm que fazer qualquer coisa a em toda
parte dano de exposio, contanto todo o desenho acabado em pintura
() ou em mtodos chamados por pintura ().
7. O seu manipulador de evento mouseDragged () e seu mtodo paint () fazem
assim:
GEEK BRASIL - http://www.geekbrasil.com.br

1.
2.
3.
4.
5.
6.
7.
8.
9.

public void mouseDragged(MouseEvent e) {


mouseX = e.getX( );
mouseY = e.getY( );
repaint( );
}
public void paint(Graphics g) {
g.setColor(Color.cyan);
g.drawLine(mouseX, mouseY, mouseX+10, mouseY+10);
}

Voc quer modificar seu cdigo de forma que as linhas de cyan acumule
na tela, em lugar de ter sido apagado toda vez repaint () chame o mtodo
update(). Qual o modo mais simples para proceder?
A alternativa D est correta, e uma tcnica standard sempre que
voc no quer atualize () enxugar a tela antes de chamar pintura (). Todas
as linhas de cyan diagonais permanecero na tela; o efeito estar como
desenho com uma caneta de caligraphy. Respostas UM e B (em linha 4,
substitua repinte () com pintura () ou repinta ()) no compilar, porque
ambos pintura () e repinta () requeira uns Grficos como na introduza.
Resposta C dificuldade sria: super. Atualize (g) clarear a tela e
chamar pintura (g) que chamar super. Atualize (g), e assim por diante
sempre.
8. Que cdigo voc usaria para construir uma font de 24-point do tipo serif ?
A alternativa D est correta. A assinatura para o constructor de
Manancial Manancial (fontname de fio, int nomeiam, int classificam
segundo o tamanho). O nome de manancial pode ser um de Serifa,
SansSerif, ou Monospaced. O estilo deveria ser um de Manancial.
PLANCIE, manancial. TIPO NEGRITO, ou Manancial. ITLICO.
9. O que faz o mtodo de desenho paint( ) ?
1. public void paint(Graphics g) {
2. g.drawString(question #9, 10,0);
3. }
A alternativa B est correta. O parmetro de y-coordenada passou
em drawString () a posio vertical do baseline do texto. Desde
que o baseline est nas 0 (quer dizer, o topo do componente) s
descenders sero visveis. O fio pergunta #9 contm um
descender, to s uma nica curva pequena descendente do q ser
vista.
10. O que faz o mtodo de desenho paint( ) ?
GEEK BRASIL - http://www.geekbrasil.com.br

1. public void paint(Graphics g) {


2.
g.drawOval(100,100,44);
3. }
A alternativa D est correta. A assinatura para drawOval ()
drawOval (int x, int y, largura de int, altura de int), Onde x e y
definem que o canto de superior-esquerda do oval est saltando
caixa, e largura e altura definem o tamanho da caixa saltando. A
pergunta mostra misconception comum que x e y definem o centro
do oval.

GEEK BRASIL - http://www.geekbrasil.com.br

Captulo 13
1. Qual linha ou linhas do cdigo HTML seguinte so errneas?
1. <APPLET WIDTH=50 HEIGHT=95 CODE=Thermostat.Class>
2. <PARAM NAME=scale VALUE=Celsius>
3. </APPLET>
H um problema na linha 1. O valor de CDIGO caso-sensvel e
capitaliza a primeira carta assim do. Extenso de classe no vlida. O
browser ignoraro a etiqueta de applet inteira.
2. Verdadeiro de Falso: O valor de CDIGO em uma etiqueta <APPLET> tem
que nomear um arquivo de classe que est no mesmo diretrio como a
chamada pgina de HTML.
Falso. Se o valor um URL, ento o arquivo de classe poderia residir
at mesmo em uma mquina diferente.
3. Verdadeiro ou Falso: Se o returns nulo do getParameter (), assinalando o
valor de retorno de uma varivel do tipo String podem causar uma exceo a
ser lanada.
Falso. Uma varivel do tipo String pode ser nomeada com um valor
de nulo.
4. Verdadeiro ou Falso: Toda etiqueta de ARQUIVO especifica um arquivo de
JARRO exatamente.
Falso. Na ARCHIVE etiqueta pode especificar uma lista vrgulaseparada de arquivos de Jarro.
5. Considere o seguinte mtodo init() de um applet:
1.
2.
3.
4.
5.

public void init( ) {


String val = Primo;
val = getParameter(XX).toUpperCase( );
System.out.println(val = + val);
}

Na linha 4, qual o valor de val se a etiqueta do applet fosse a seguinte:


1. <APPLET CODE=Q5.class WIDTH=100 HEIGHT=100>
2. <PARAM NAME=Xx VALUE=Secondo>
3. </APPLET>
A alternativa E est correta. A chamada para getParameter () ignora
o caso seu argumento e lucros secondo que o valor exato da
GEEK BRASIL - http://www.geekbrasil.com.br

pgina de HTML Com capitalizao intato. A chamada para


toUpperCase () converte a caso superior.
6. Considere o seguinte mtodo init() de um applet:
1.
2.
3.
4.
5.
6.
7.
8.

public void init( ) {


int i =100;
String val = getParameter(YY);
try {
i = Integer.parseInt(val);
} catch (Exception e) { }
System.out.println(i = + i);
}

Na linha 7, qual o valor de i se a etiqueta do applet fosse a seguinte:


1. <APPLET CODE=Q6.class WIDTH=100 HEIGHT=100>
2. <PARAM NAME=yy VALUE=3a6>
3. </APPLET>
A alternativa B est correta. A chamada para getParameter () ignora
o caso de seu argumento, e lucros 3 uns 6 que o valor exato da
pgina de HTML com capitalizao intato. O parseInt () chame lana
uma exceo de nmero-formato, assim a tarefa para i em linha 5
nunca acontece. Assim i retm seu valor original de 100.
7. Verdadeiro ou Falso: Na etiqueta seguinte, WhereAmI.classe deve ser
achada em big.jar.
1. <APPLET CODE=WhereAmI.class HEIGHT=200 WIDTH=75
ARCHIVE=big.jar>
2. </APPLET>
Falso. O arquivo de classe poderia residir em grande. Chocalhe, ou
poderia residir no mesmo diretrio como o arquivo de HTML.
8. O HTML abaixo parte da pgina de Rede localizada em
http://www.barra.com. O HTML trabalhar ?
1. <APPLET CODE=bodies.Globe.class WIDTH=75 HEIGHT=75
2. CODEBASE=http://www.foo.com/astronomy>
3. </APPLET>
Sim. O valor de CODEBASE pode ser na URL.
9. Suponha voc tem a linha seguinte etiqueta dentro um <APPLET> :
<PARAM NAME=gem VALUE=pearl>
GEEK BRASIL - http://www.geekbrasil.com.br

e a linha seguinte dentro do mtodo init( ) corresponde:


String gem = getParameter(pearl0;
Que valor assinalado para gem ?
O valor nulo. O getParameter () chamada est procurando um
parmetro nomeado prola, e nenhum tal parmetro definido no
cdigo de HTML. O nico parmetro definido no HTML pedra
preciosa.
10. Considere o mtodo init( ) seguinte:
1.
2.
3.
4.
5.
6.
7.
8.

public void init( ) {


init i = 100;
String val = getParameter(YY);
try { i = Integer.parseInt(val); }
catch (NumberFormatException e) { i = 200;}
catch (NullPointerException e) { i = 300;}
System.out.println( i = 1 + i);
}

Na linha 8, qual o valor de i se a etiqueta do applet fosse a seguinte:


1. <APPLET CODE=Q6.class WIDTH=100 HEIGHT=100>
2. <PARAM NAME=aa VALUE=3a6>
3. </APPLET>
A alternativa D est correta. Desde que o aa de parmetro no
definido, nulo passado no parseInt () chame a linha 5 e resulta em uma
exceo de nulo-ponteiro. O manipulador de exceo de nulo-ponteiro
nomeia um valor de 300 a i.

GEEK BRASIL - http://www.geekbrasil.com.br

Captulo 14
1. Qual das declaraes abaixo verdadeira?
S D est correto. Carter de UTF so to grande quanto eles
precisam ser. Carter de Unicode so todos os 16 pedaos. No h
nenhuma tal coisa como um carter de Bytecode; bytecode o formato
gerado pelo Java compile.
2. Qual das declaraes abaixo verdadeira?
Todas as trs declaraes so falsas. Construo e coleo de lixo
de um arquivo no tm nenhum efeito no sistema de arquivo local.
3. Verdadeiro ou Falso: A classe de Arquivo contm um mtodo que muda o
diretrio de funcionamento atual:
Falso A classe de Arquivo no prov um modo para mudar o
diretrio de funcionamento atual
4. Verdadeiro de Falso: possvel usar a classe de Arquivo para listar os
contedos do diretrio de funcionamento atual.
Verdadeiro. O cdigo abaixo de espetculos como isto acabado:
Arquive f = Arquivo novo (.)
String contedos [] = f. lista ();
5. Quantos bytes escreve o cdigo seguinte para arquivar destfile?
1.
2.
3.
4.
5.
6.
7.
8.
9.

try {
FileOutputStream fos = new FileOutputStream(destfile);
DataOutputStream dos = new DataOutputStream(fos);
dos.writeInt(3);
dos.writeDouble(0.0001);
dos.close( );
fos.close( );
}
catch (IOException e ) { }

A alternativa C est correta. O writeInt () chamada escreve int de na


que 4 bytes longo; o writeDouble () chamada escreve fora um
dobro que 8 bytes longo para um total de 12 bytes.
6. O que imprime o fragmento de cdigo seguinte a linha 9?
1. FileOutputStream fos = new FileOutputStream(xx);
GEEK BRASIL - http://www.geekbrasil.com.br

2.
3.
4.
5.
6.
7.
8.
9.

for (byte b=10; b<50; b++)


fos.write(b);
fos.close();
RandomAccessFile raf = new RandomAccessFile(xx, r);
Raf.seek(10);
int i = raf.read( );
raf.close( );
System.out.println(i = + i);

A alternativa B est correta. Todo o cdigo perfeitamente legal,


assim nenhum excepitions so lanados. O primeiro byte no
arquivo 10, os prximos bytes so 11, o prximo 12, e assim por
diante. Os bytes a arquivo posio 10 20, assim a produo i =
20.
7. Um arquivo criado com o cdigo seguinte:
1. FileOutputStream fos = new FileOutputSteam(datafile);
2. DataOutputStream dos = new DataOutputStream(fos);
3. For (int i =0; i < 500; i++)
4.
dos.writeInt(i);
Voc gostaria de escrever cdigo para ler os dados atrs deste arquivo.
Quais solues listadas abaixo trabalharo?
As alternativas A e D esto corretos. Soluo UMAS cadeias um
dados introduz fluxo sobre um arquivo introduza fluxo. Soluo D usa a
classe de RandomAccessFile simplesmente. B falha porque a classe de
FileReader no tem nenhum readInt () mtodo; os leitores e escritores s
dirigem texto. Soluo que C falha porque a classe de PipedInputStream
no tem nada que ver com arquivo eu / (Transportou introduza e fluxos
de produo so usados em comunicao de interthread.) Soluo que E
falha porque voc no pode encadear que um dados introduz fluxo sobre
um leitor de arquivo. Leitores leram servios domsticos, e introduz bytes
de manivela de fluxos.
8. Verdadeiro ou Falso: Leitores tm mtodos que podem ler retorno flutua e
dobra.
Falso. Os leitores e escritores s lidam com carter eu /
9. Voc executa o cdigo abaixo em um diretrio vazio. O que o resultado?
1. File f1 = new File(dirname);
2. File f2 = new File(f1,filename);
A alternativa E est correta. Instncia de na construindo da classe
de Arquivo no tem nenhum efeito no sistema de arquivo local.
GEEK BRASIL - http://www.geekbrasil.com.br

10. Qual o resultado tentando compilar e executar no fragmento de cdigo


abaixo? Assuma que o fragmento de cdigo parte de uma aplicao que
tem escreve permisso no diretrio de funcionamento atual. Tambm
assuma que antes de execuo, no contm o diretrio de funcionamento
atual que um arquivo chamado datafile.

1.
2.
3.
4.
5.
6.
7.
8.
9.

try {
RandomAccessFile raf = new RandomAccessFile(datafile), rw;
BufferedOutputStream bos = new BufferedOutputStream(raf);
DataOutputStream dos = new DataOutputStream(bos);
dos.writeDouble(Math.PI);
dos.close( );
bos.close( );
raf.close( );
} catch (IOException e) { }

A alternativa A est correta. Compilao falha a linha 3, porque no


h nenhum constructor para BufferedOutputStream que leva um
objeto de RandomAccessFile como um parmetro. Voc pode estar
seguro deste at mesmo se voc no est familiarizado com
produo de buffered que flui, porque arquivos de fortuito-acesso
so completamente incompletely incompatvel com o fluxo /
reader/writer modelo.

\!!!!!/

()

------------oOOO--(_)-------------------------

| Arquivo baixado da GEEK BRASIL

| http://www.geekbrasil.com.br

| O seu portal de informtica e internet


| Dvidas ou Sugestes?

| webmaster@geekbrasil.com.br

--------------------------oOOO---------------|__| |__|
||

ooO

||

Ooo

GEEK BRASIL - http://www.geekbrasil.com.br

Você também pode gostar