Вы находитесь на странице: 1из 28

C

Respostas dos Exerccios


. - Exerccios
. A resposta certa (a). A varivel i no pode ser acessada fora do lao.
. A resposta certa (a). A varivel i no pode ser acessada fora do lao,
repare que o lao no foi declarado com {, uma pegadinha clssica da
prova.
. A resposta certa (c). A varivel i declarada no for s visvel dentro
do for.
. A resposta certa (c), a varivel x declarada como parmetro do mtodo main efetua um shadowing. Nesse instante, ao dizermos x =
200, tentamos atribuir um int a um array de String, erro de compilao.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

. A resposta certa (d). Isso porque o acesso varivel esttica pode


ser feito atravs da instncia da classe ou diretamente caso seja uma
varivel esttica sendo acessada por um mtodo esttico.
. - Exerccios
. A resposta certa (a). O arquivo no compila pois no podemos ter
um import aps a denio de uma classe.
. A resposta certa (e). O cdigo compila e roda, no imprimindo nada,
pois no chamamos o mtodo Test, somente o construtor Test().
. A resposta certa (c). O cdigo compila sem erros: a ordem package
e import est adequada, e os tipos so opcionais dentro de um arquivo
java.
. A resposta certa (d). Uma vez que o arquivo chama A.java, o nico
tipo pblico que pode existir dentro dele deve se chamar A, o que no
verdade: tentamos denir um tipo B pblico. Alm disso, aps o
extends no podemos colocar uma ,.
. - Exerccios
. O mtodo main no pode devolver int nem Void. Ele tambm
deve ser pblico e s receber um argumento: um array (ou varargs) de
String. Portanto:
public static void main(String... args)

A resposta certa (a).


. Para compilar, estamos trabalhando com arquivos e diretrios, portanto javac b/A.java; enquanto, para rodar, estamos pensando em
pacotes e classes: java b.A. A resposta certa (d).
. Ao rodar sem argumentos, nosso array tem tamanho zero, portanto, ao tentar acessar seu primeiro elemento recebemos um
ArrayIndexOutOfBoundsException na linha C. A resposta certa
(c).

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

Captulo . Respostas dos Exerccios

. Para rodar um programa dentro de um jar sem ter um manifesto,


devemos usar o classpath customizado. Colocamos o jar no classpath
e dizemos qual classe desejamos rodar: java -cp program.jar
b.A. A resposta certa (f).
. Durante a compilao, para adicionar o arquivo program.jar ao
classpath, devemos usar -cp program.jar e, para especicar o arquivo adequado, usamos b/A.java. A opo que apresenta essas duas
caractersticas javac -cp program.jar:. b/A.java. A resposta certa (h).
. - Exerccios
. A resposta certa (a). Ocorre um erro de compilao na classe Test
ao tentar importar uma classe no acessvel a outros pacotes.
. A resposta certa (a). O erro de ambiguidade dado no import e
no na utilizao, portanto o arquivo no compila e o erro na linha
do import.
. A resposta certa (c). No existe ambiguidade uma vez que o import
especco tem preferncia em cima do * .
. A resposta certa (c). No h erro de ambiguidade, simplesmente um
import desnecessrio e no gera erro nenhum, apenas um warning.
. A resposta certa (e). O arquivo B compila pois uma classe normal. O
arquivo C no compila pois tenta acessar B, que est em outro pacote,
mas lembre-se que devemos acessar os pacotes diretamente, no existe
subpacote. O mesmo vale para A. Portanto, nem A nem C compilam.
. A resposta certa (d). Um pacote pode ter nome comeando com
maisculo, isso no afeta em nada. Mas no o padro. O nome de
variveis locais e parmetros no afetam a assinatura de um mtodo
em Java. Uma classe no precisa ser pblica para ser rodada. Portanto
o cdigo compila e roda.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

. A resposta certa (b). No importamos a classe A, somente seus membros, erro de compilao ao tentar referenci-la na linha .
. A resposta certa (a). import static o uso adequado, e no
static import, erro na linha .
. A resposta certa (a). B no compila pois tenta acessar uma classe
do pacote padro (sem nome). Classes do pacote padro s podem ser
acessadas por outros tipos do pacote padro. No compila.
. - Exerccios
. A resposta certa (d). O cdigo compila e imprime . Podemos ter
espaos em branco desde que no quebre uma palavra-chave, nome de
mtodo, classe etc. ao meio. Onde pode ter um espao em branco, pode
haver vrios.
. A resposta certa (a). O cdigo no compila pois tentamos acessar a
varivel age que pode no ter sido inicializada. No certeza (somente
se cair no if ela ser inicializada).
. A resposta certa (d). Se o uxo chegar na chamada do println, isso
signica que ele passou pela inicializao da varivel age.
. A resposta certa (f). No compila, do lado direito da atribuio temos
um array de boolean e do lado esquerdo uma varivel simples do tipo
boolean.
. A resposta certa (b). Imprime false pois um array de tipos primitivos aps a inicializao tem seus valores com o valor padro do tipo.
Para numricos , para boolean false e para referncias null.
. A resposta certa (b). No compila pois boolean em Java s pode ser
false ou true.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

Captulo . Respostas dos Exerccios

. A resposta certa (a). O nmero octal no existe. Voc no precisa


aprender a transformar uma base em outra, mas importante lembrar
que binrios so compostos de s e s, octais so compostos de s at
s, hexadecimais so de s at s e As at Fs (maisculo ou minsculo).
O caractere _ permitido desde que dos dois lados dele tenhamos algarismos vlidos, que o caso de _. Portanto, o nico nmero
invlido (por curiosidade, o nmero em base octal ).
. A resposta certa (c). Compila e imprime o alfabeto pois caracteres
so nmeros em Java.
. A resposta certa (e). instanceOf no palavra reservada: note a
letra maiscula no meio dela. Nenhuma palavra-chave em Java possui
caractere maisculo.
. A resposta certa (d). Compila e roda, no imprimindo nada. Lembrese que os identicadores so case-sensitive.
. - Exerccios
. A resposta certa (e). Imprime , pois a atribuio por cpia do
valor.
. A resposta certa (f). Imprime , pois a atribuio de objetos feita
por cpia da referncia, criamos somente um nico objeto do tipo B.
. - Exerccios
. A resposta certa (d). No existe conito de nomes entre varivel membro e mtodo ou varivel membro e varivel local. Ao invocar o mtodo
c, por causa do shadowing da varivel c, no acessamos a varivel
membro, sem alter-la. O resultado a impresso dos valores e
novamente.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

. - Exerccios
. A resposta certa (c). Compila e no podemos falar nada.
. A resposta certa (b). Somente objetos podem ser garbage coletados
pois o ltimo continua referenciado pela varivel b.
. A resposta certa (b). O cdigo compila, mas como no chamamos
nenhum construtor, o nico objeto criado que se assemelha a B, porm
no B, um array do tipo B, com espaos. Nenhum objeto
criado. Note que para criar devemos, por padro, invocar o construtor.
. - Exerccios
. A resposta certa (b). O cdigo compila e devido regra de sempre
invocar o mais especco, ele sempre invoca o mtodo sem argumentos.
Portanto, o resultado vazio/vazio. Lembre-se que em Java a ordem de
denio de mtodos no importa para a invocao. J a ordem das
variveis pode importar, caso uma dependa da outra.
. A resposta certa (c). O cdigo compila e imprime .
. A resposta certa (e). O cdigo compila e imprime .
. A resposta certa (e). O cdigo compila e imprime . Esse o caso
absurdo onde o array tanto um Object quanto um array de Object.
Por padro o Java tratar como um array de Object.
. - Exerccios
. A resposta certa (e). O array comea na posio , portanto, o primeiro caractere removido se encontra na posio , o i. Ele remove
todos os caracteres at a posio , exceto o da posio , portanto somente o i removido.
. A resposta certa (a). Os dois mtodos retornam -1 quando no encontram nada, portanto, o segundo resultado -2. Como a posio
comea em 0, o resultado das letras e so 5 e 8, totalizando 13.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

Captulo . Respostas dos Exerccios

. - Exerccios
. A resposta certa (a). No compila, pois length() um mtodo de
String, diferente dos arrays em que length um atributo.
. A resposta certa (b). D NullPointerException! msg null e
no d pra chamar isEmpty em null.
. A resposta certa (a). No compila pois a varivel no foi inicializada.
. A resposta certa (a). Caelum e Caelum - Ensino e Inovao.
. A resposta certa (e). Compila e imprime Welcome null
. A resposta certa (b). No compila pois a String no foi inicializada
. A resposta certa (b). No compila por outro motivo: a varivel vazio
no esttica.
. A resposta certa (e). Compila e imprime Welcome null.
. A resposta certa (d). D NullPointerException ao tentar criar a
segunda String.
. A resposta certa (c). O cdigo compila e imprime uda.
. A resposta certa (a). No compila pois String possui diversos construtores que recebem um argumento: o compilador no sabe qual deles
voc deseja invocar pois os tipos que so argumentos do construtor no
possuem herana entre si (um no herda necessariamente do outro).
. A resposta certa (c). Nenhuma das alternativas dadas com nmero,
pois primeiro ele soma val e div, imprimindo . A conta de diviso
feita entre int, devolvendo um int de valor . Quando esse nmero
atribudo a um double, continua sendo . Portanto, imprime 14 e
2.0.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

. A resposta certa (a). O cdigo no compila pois o mtodo replace


possui duas maneiras de ser invocado: com dois chars ou com duas
Strings. Foram passados uma String e um char, mtodo que no
existe.
. A resposta certa (a). Pensamos que pode ser gualherme, mas lembramos que String em Java imutvel e ela no foi reatribuda. O
= d uma impresso de reatribuio de parte da String, mas isso
no existe em Java, o lado esquerdo de uma atribuio deve ser sempre
uma varivel e no uma chamada a um mtodo. Por isso, a linha do
substring no compila.
. - Exerccios
. As opes (a) e (c) no compilam e precisam do casting mesmo com
short e char tendo bytes.
Na opo (a), pode ocorrer de o short ser negativo e, portanto, no
caber no intervalo dos chars. Na opo (c), o char pode ser muito
grande e sair fora do alcance dos positivos do short.
A opo (b) compila, pois o char que possui bytes pode ser atribudo
para um long que possui bytes.
. A resposta certa (b). Anlise linha a linha:
diviso inteira: i vale
diviso inteira, que depois promovido a double: i vale .
diviso double: i vale .
x vale L e d vale . (duas promoes)
O resultado .
. A resposta certa (d). Mesmo c sendo null, por estarmos usando
o operador &, a segunda parte da expresso ( c.getPreco() >
10000) ser avaliada, causando uma NullPointerException na
chamada do mtodo getPreco() caso c seja null. Poderamos
evitar isso usando o operador de curto-circuito, &&.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

Captulo . Respostas dos Exerccios

. A resposta certa (d): i e c.


. A resposta certa (d). Pode-se utilizar o operador booleano de ou exclusivo ^:
if (train ^ car) {
// ....
}

. linha:

ArithmeticException: / by zero linha:


Infinity linha: Infinity linha: -Infinity

. A resposta certa (b). O cdigo no compila na linha . O compilador


no tem certeza se a varivel y vai ser iniciada sempre. Como a declarao feita e o nico valor atribudo dentro do for, o compilador
no tem certeza se o for vai ser executado mesmo.
. A resposta certa (d).
. A resposta certa (e). Compila, roda e imprime A. Cuidado ao compilar e rodar pois alguns caracteres podem precisar ser escapados pelo
seu shell ou bash (no cobrado na prova).
. - Exerccios
. No compila! Toda conta devolve no mnimo um int. O resultado de
b1 + b2 int. Podemos fazer casting ou declarar b3 como int.
. A resposta certa (c). No compila, pois toda conta devolve no mnimo
um int, e um int no cabe em um byte.
. A resposta certa (c), .
O for externo vai contar de a , mas dentro do for tem um if que
pr-incrementa o i. Esse if vai quebrar o loop no momento que o
valor retornado for divisvel por , isto , quando i valer nesse caso.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

. A resposta certa (a), .


Dessa vez, o valor de i ser usado no if e s depois incrementado.
Como o resto de dividido por qualquer nmero tambm , o for
s executa uma vez. Mas o valor de i ainda ser incrementado, imprimindo o valor de .
. Vai imprimir .
O for externo vai contar de a , mas dentro do for tem um if que
pr-incrementa o i. Esse if vai quebrar o loop no momento em que o
valor retornado for divisvel por , isto , quando i valer nesse caso.
. A resposta certa (f). A segunda linha do mtodo main no compila
pois estoura o limite de byte.
. A resposta certa (c). O cdigo no compila pois no podemos declarar
um char negativo.
. A resposta certa (f). O cdigo compila e imprime um outro valor (
+ ).
. A resposta certa (b). O cdigo compila e joga uma exception por
causa da diviso inteira (so ints) por zero.
. A resposta certa (c). O cdigo compila e imprime positivo innito. A
precedncia de operadores primeiro a diviso, por isso compila.
. A resposta certa (a).
boolean e nmeros.

No compila, no h comparao entre

. - Exerccios
. A resposta certa (a). No compila pois o resultado do parenteses
uma String que no possui o operador de diviso.
. A resposta certa (b). true==false false. O inverso disso
true. Comparando com true, true. Portanto, o operador ternrio
devolve 1 que diferente de , imprimindo false.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

Captulo . Respostas dos Exerccios

. - Exerccios
. A resposta certa (b). O cdigo compila e imprime true e false.
. A resposta certa (d). Compila e imprime false, false, uma vez
que a String vale s.
. A resposta certa (c). Compila e imprime true, true. Por mais que
substring devolva uma nova String, nesse caso ele devolveu a String
inteira, a prpria String.
. A resposta certa (e). O cdigo imprime false e true. As duas referncias so diferentes ( false), e o mtodo equals no foi sobrescrito
( true).
. A resposta certa (a). O cdigo no compila pois D no do tipo C.
. - Exerccios
. A resposta certa (c). O cdigo compila normalmente e imprime 0
caso no seja passado nenhum argumento.
. A resposta certa (a). O cdigo no compila pois a varivel valor
final e no pode ser alterada, mas tentamos efetuar uma atribuio
dentro do if.
. A resposta certa (a). O cdigo no compila pois tenta atribuir a
uma varivel e conferir o valor como se fosse um boolean.
. A resposta certa (a). O cdigo no compila pois no existe palavrachave elseif. Devemos fazer um else if para compilar.
. A resposta certa (b). O cdigo no compila pois o else no est
aplicado ao if: para ser aplicado ao if, ele deve vir imediatamente
aps seu bloco. Como o if no possui chaves, somente a primeira
linha pertence a ele.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

. - Exerccios
. A resposta certa (d). Ao rodar com argumentos, o cdigo imprime
+++.
. A resposta certa (a). O cdigo no compila pois t2 no uma constante. Somente podemos vericar case de switch em variveis nais
inicializadas diretamente.
. A resposta certa (b). A String "42" uma String uma vez que
ela est entre aspas. Portanto, o cdigo imprime Guilherme.
. A resposta certa (a). A sintaxe do case com : e no com {, o
cdigo no compila.
. A resposta certa (a). O cdigo no compila pois o case no aceita
expresses como < x, mas sim um valor denido em tempo de compilao.
. A resposta certa (a). O cdigo no compila pois h cdigo que no
ser executado aps break.
. - Exerccios
. A resposta certa (e). No faz sentido ter colchetes antes da declarao
do tipo, portanto []int x no compila.
. A resposta certa (b). A segunda linha no compila pois, ou voc passa
o tamanho, ou passa os valores.
. A resposta certa (b). O programa no compila pois a segunda e a
terceira linha tentam redenir uma varivel j denida. Caso o nome
da varivel seja corrigido, o cdigo compila e imprime nada ao rodar
(um array pode ter tamanho zero).
. A resposta certa (c). O programa inicializa i para o tamanho do array, acessando uma posio inexistente. Portanto d erro em execuo
(exception).

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

Captulo . Respostas dos Exerccios

. A resposta certa (b). No tenha medo de simular o cdigo na mo.


Simule a memria e perceba que d uma Exception.
. A resposta certa (f). No tenha medo de simular o cdigo na mo.
Simule a memria e perceba que o resultado 2, -5. Para isso, desenhe os trs espaos do array, aponte os valores iniciais e continue
atribuindo valores, executando o cdigo.
Durante a prova, simular os arrays e os ponteiros ideal para no se
perder em cdigos complexos de referncias e valores com arrays.
. A resposta certa (d). Compila e imprime true: note que no existe
criao de um novo array, ns simplesmente temos duas referncias (
valores e vals para o mesmo array na memria).
. As respostas corretas so (a), (b), (f) e (j).
. - Exerccios
. A resposta certa (a). No compila pois, ao inicializarmos o array zyx,
utilizamos um array de uma nica dimenso.
. A resposta certa (f). Na posio , temos o array z, que tem casas,
portanto temos o resultado 30.
. A resposta certa (g). O cdigo compila e imprime 30 normalmente.
No h problema algum em apontar para um novo array.
. A resposta certa (a). Nesse exemplo, guardado um valor double
em uma das posies do array de int id. Isso est incorreto portanto
no compila.
Na declarao do array de duas dimenses tb, so informados os tamanhos das dimenses. Errado pois os tamanhos devem ser denidos
na inicializao e no na declarao.
Na inicializao do array cb, no foi colocado o tamanho de nenhuma
das dimenses.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

. - Exerccios
. A resposta certa (a). O cdigo no compila, pois a classe ArrayList
no foi importada.
. A resposta certa (d). O cdigo roda e imprime true, pois foi removido um elemento da lista.
. A resposta certa (f). O cdigo roda e imprime pois ele remove o
primeiro elemento igual ao elemento passado.
. A resposta certa (h). O cdigo compila e imprime .
. A resposta certa (a). O cdigo no compila, pois o mtodo toArray
sem argumentos retorna um array de Object.
. A resposta certa (b). O cdigo inclui os elementos sempre no nal da
ArrayList, portanto imprime a e depois d.
. A resposta certa (a). O cdigo no compila, pois a ordem dos parmetros para o mtodo add int, String.
. A resposta certa (b). O cdigo compila e imprime somente a. Isso
porque ele executa um next durante o passo de iterao do lao for,
o que acaba consumindo o segundo elemento sem imprimi-lo.
. A resposta certa (c). O cdigo compila e imprime a, b, c, d, pois o
lao est alterando o valor referenciado pela varivel s, e no o valor
contido dentro da nossa ArrayList.
. - Exerccios
. A resposta certa (e). O cdigo compila e ao rodar, a no maior que
100, portanto imprime 10.
. A resposta certa (c). O cdigo j compila pois a varivel no nal, e
entra em loop innito.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

Captulo . Respostas dos Exerccios

. - Exerccios
. A resposta certa (a). O cdigo no compila, pois o lao nunca quebrado e nunca chega a executar o cdigo que imprime b.
. A resposta certa (a). O cdigo no compila, pois o cdigo dentro de
for nunca ser executado.
. A resposta certa (a). O cdigo no compila, pois tentamos denir
o tipo de duas variveis no nosso for, mesmo que os tipos sejam o
mesmo.
. A resposta certa (b). Compila e imprime os valores at .
. A resposta certa (a), O cdigo no compila pois s podemos ter uma
condio para o lao for.
. A resposta certa (e). O cdigo compila e imprime 0 1 1 2
. - Exerccios
. A resposta certa (b). O cdigo compila e imprime false, pois ele
sempre entra no lao pelo menos uma vez.
. A resposta certa (b). Compila e entra em loop innito caso seja passado zero, um ou dois argumentos. No imprime nada caso a argumentos. Imprime nished caso ou mais argumentos.
. A resposta certa (c). O cdigo compila e imprime , j que a condio
i maior que .
. A resposta certa (a). O cdigo no compila, pois faltou um ponto e
vrgula.
. A resposta certa (c). Compila e sai.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

. - Exerccios
. A resposta certa (a). Quando iteramos por duas colees ao mesmo
tempo, podemos usar tanto o for quanto o while, mas o for
mais simples, pois passa por todos os elementos j com a inicializao
e incremento bem denidos dentro do lao.
. A resposta certa (a). Usamos o for tradicional (com ou sem
Iterator) para remover elementos. Poderamos usar o while, mas
ele no est na lista de respostas.
. A resposta certa (b). Devemos usar o do...while, que garante a
execuo pelo menos uma vez do cdigo.
. A resposta certa (d). for, while ou do...while resolvem o
problema, mas o mais comum o while.
. A resposta certa (b). No possvel inicializar os valores de um array
com o enhanced for, portanto usamos o for.
. - Exerccios
. O cdigo no compila pois o segundo if est fora do bloco do for e
tenta acessar uma varivel denida dentro dele. Lembre-se que o escopo de um bloco for sem chaves uma nica instruo, no caso o
primeiro if else if.
. A resposta certa (d). Compila e imprime at , at , at .
. A resposta certa (j). Compila e ao rodar com argumentos imprime
at , end.
. - Exerccios
. A resposta certa (a). O cdigo no compila pois existe um return
sem valor, e o mtodo x deve retornar um int.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

Captulo . Respostas dos Exerccios

. A resposta certa (a). No compila, pois a varivel l apesar de ser


final no considerada uma constante pelo compilador. Para ser
uma constante a varivel tem que ser final e ter seu valor atribudo
durante a inicializao.
. A resposta certa (b). O cdigo no compila porque o mtodo c retorna um long, e esse long utilizado como retorno no mtodo a e
no mtodo b. Ambos precisam de um retorno do tipo int, que no
tem converso automtica.
. A resposta certa (a). O cdigo no compila, pois no existe retorno
de mtodo com dois valores como int, int.
. - Exerccios
. A resposta certa (a). O cdigo no compila pois os mtodos no
possuem tipo de retorno denido. Tpica pegadinha: parece focar em
static mas est focado em outra coisa.
. A resposta certa (b). Imprime x, depois y.
. A resposta certa (d). Compila e imprime z.
. A resposta certa (a). O cdigo no compila pois tenta acessar this
dentro de um contexto esttico.
. A resposta certa (b). O cdigo compila e imprime x e y.
. - Exerccios
. A resposta certa (a). O cdigo no compila, pois no h sobrecarga
de mtodo ao alterar s o retorno.
. A resposta certa (c). Compila e imprime 15, 15 e 15.0.
. A resposta certa (a). O cdigo no compila.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

. A resposta certa (a). No compila: os mtodos no so estticos.


. A resposta certa (d). Compila e imprime 3.
. A resposta certa (b). Compila e imprime .
. A resposta certa (a). No compila, pois tem vrias variveis locais
(parmetros) com o mesmo nome.
. A resposta certa (b). Compila e imprime .
. - Exerccios
. A resposta certa (d).
NullPointerException.

O cdigo compila e joga um

. - Exerccios
. A resposta certa (a). O cdigo no compila por causa do loop, quando
um construtor de um tipo chama outro construtor do mesmo tipo em
loop direto.
. A resposta certa (d). O cdigo no compila pois as classes denem
parnteses a mais. Cuidado.
. A resposta certa (f). O cdigo compila e no imprime nada.
. A resposta certa (f). O cdigo compila e no imprime nada.
. A resposta certa (e). O cdigo compila e joga exception ao entrar em
loop innito.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

Captulo . Respostas dos Exerccios

. - Exerccios
. A resposta certa (a). Ocorre um erro de compilao na classe Teste
ao tentar chamar o construtor com acesso default de outro pacote.
. A resposta certa (b). Compila e imprime 3.
. A resposta certa (b). No compila na declarao do mtodo private
public.
. A resposta certa (a). O cdigo no compila, pois a classe A a prpria
classe do mtodo main, e ela no tem mtodo a.
. A resposta certa (b). Imprime 1, pois o mtodo que recebe String
no est visvel no pacote principal.
. A resposta certa (a). No compila, pois a palavra default no pode
ser usada como modicadora de visibilidade de mtodo.
. A resposta certa (b). O cdigo compila e imprime
. - Exerccios
. A resposta certa (b). Compila e imprime , so duas instncias de B!.
. A resposta certa (c). Compila e imprime .
. A resposta certa (b). Compila e imprime , existe shadowing aqui no
setter.
. A resposta certa (b). Compila e imprime .
. A resposta certa (d). Compila e imprime , existe shadowing aqui no
setter, ento no h problema de a varivel ser final.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

. - Exerccios
. A resposta certa (a). No compila pois somente variveis podem ter
aplicadas auto increment e auto decremento.
. A resposta certa (c). Compila e imprime .
. - Exerccios
. Aqui no ocorre sobrescrita. Como os parmetros so diferentes,
ocorre uma sobrecarga (no confundir na prova overload com overwrite). Ou seja, um overload com herana.
. A reescrita vlida, pois FileNotFoundException subclasse de
IOException.
. A resposta certa (a). O cdigo no compila pois h um ciclo na herana.
. A resposta certa (a). O cdigo no compila pois usa herana mltipla
de classes, que no existe em Java.
. A resposta certa (c). O cdigo compila e no imprime nada.
. A resposta certa (a). O cdigo no compila pois no existe construtor
de B ao qual A tenha acesso para herdar do mesmo.
. A resposta certa (a). O cdigo no compila pois A no tem acesso a
varivel de B.
. A resposta certa (b). Compila e imprime t
. - Exerccios
. A resposta certa (a). O cdigo no compila pois faltou o import de
java.io.*.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

Captulo . Respostas dos Exerccios

. A resposta certa (b). O cdigo compila e imprime b.


. A resposta certa (c). O cdigo compila e imprime c.
. A resposta certa (a). O cdigo no compila: C no possui mtodo
que receba double.
. A resposta certa (a). No compila, pois interface no pode ter mtodo
com corpo da maneira como foi denido aqui.
. A resposta certa (d). Compila e imprime d
. A resposta certa (g). Compila e entra em loop.
. A resposta certa (b). Compila e imprime b,b,c.
. A resposta certa (a). No compila, no existe super.x na classe B.
. - Exerccios
. A resposta certa (a). No compila pois h um erro de copy e paste nos
nomes das variveis.
. A resposta certa (c). Compila e imprime .
. A resposta certa (c). Compila e imprime .
. A resposta certa (b). Compila e imprime .
. A resposta certa (a). O cdigo no compila pois o mtodo close
no pblico.
. A resposta certa (d). O cdigo imprime closing base.
. A resposta certa (a). O cdigo no compila pois, ao sobrescrev-lo,
tentamos denir um escopo menor. No compila tambm porque o
mtodo close package protected dentro de Account.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

. A resposta certa (c). O cdigo compila e imprime closing savings.


. O cdigo compila normalmente. Apesar de o mtodo turnon no
estar declarado na classe ConcreteCar, a classe herda este mtodo de
Car, logo, no necessrio reescrev-lo (poderia reescrever se achasse
necessrio).
A declarao de que ConcreteCar implementa Vehicle tambm no era necessria, pois Car j implementa Vehicle e
ConcreteCar um Car.
. - Exerccios
. A resposta certa (c). O cdigo compila e roda, ao rodar no d exception.
. A resposta certa (d). O cdigo compila e roda, ao rodar d exception.
. A resposta certa (a). O cdigo no compila: D at implementa Z e W
mas no implementa Y.
. A resposta certa (d). O cdigo compila: algum subtipo de D pode
implementar Y. Ao rodar, ele d exception.
. A resposta certa (c). Compila, pois apesar de B no implementar Z,
um subtipo dele pode (e na prtica j o faz) implement-lo. Ao rodar
no d exception nenhuma.
. A resposta certa (d). O cdigo compila e roda dando exception.
. A resposta certa (a). D no implementa Y, no compila.
. A resposta certa (b). O cdigo no compila: instanceof minsculo.
. A resposta certa (e).
O cdigo compila, mas lana um
ClassCastException, j que D no um Y.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

Captulo . Respostas dos Exerccios

. - Exerccios
. A resposta certa (c). O cdigo compila e imprime .
. A resposta certa (a). O cdigo no compila.
. A resposta certa (a). O cdigo no compila.
. A resposta certa (a). O cdigo no compila: no faz sentido acessar o
} super de outro objeto que no eu mesmo.
. A resposta certa (a). O cdigo no compila, no podemos chamar o
this() de dentro de um mtodo
. A resposta certa (a). No compila pois tentamos invocar dois this.
. A resposta certa (c). Compila e no imprime nada.
. A resposta certa (c). Compila e no imprime nada.
. A resposta certa (a). No compila: no podemos referenciar um mtodo de instncia ao invocar um construtor this.
. A resposta certa (b). Compila e imprime .
. - Exerccios
. A resposta certa (c). Compila e imprime .
. A resposta certa (a). A classe B no compila.
. A resposta certa (b). Compila e imprime .
. A resposta certa (b). Compila e imprime .
. A resposta certa (a). No compila, pois o mtodo nal.
. A resposta certa (c). Compila e imprime b.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

. - Exerccios
. A resposta certa (d). A nica exception da lista que no checked a
IndexOutOfBoundsException

. - Exerccios
. (b) e (e) so corretas. (a) est errada pois podemos usar exceptions
mesmo sem entradas do usurio. (c) est errada pois podemos manter
o programa rodando mesmo que uma exception ocorra. (d) est errada
pois devemos usar outras estruturas para controlar o uxo de nosso
programa, como if por exemplo.
. (a) e (c) esto corretas. (b) e (d) esto incorretas por serem os opostos das certas, e (e) est incorreta pois exceptions no so maneiras de
aumentar a segurana.
. - Exerccios
. A resposta certa (a). O cdigo no compila pois a varivel local nunca
foi inicializada.
. A resposta certa (c). Quando ocorre a exception, o uxo desvia para
imprimir b e depois continua normal com o c.
. A resposta certa (b). Quando ocorre a exception, o uxo desvia para
imprimir b, passa pelo finally imprimindo c, e depois continua
normal com o d.
. - Exerccios
. A

resposta

certa

java.io.IOException.

(a).

Devemos

colocar

uma

. A resposta certa (b). O cdigo compila pois ele cria um array de dimenso . Ele imprime acefdb.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

Captulo . Respostas dos Exerccios

. A resposta certa (c). O cdigo compila e imprime ace, jogando uma


Exception.
. A resposta certa (a). O cdigo no compila pois o mtodo m2 deve
tratar ou jogar java.io.FileNotFoundException.
. A resposta certa (a). O cdigo no compila pois o mtodo main deve
tratar ou jogar java.io.IOException.
. A resposta certa (c). Compila, imprime ace e joga a Exception.
. A resposta certa (e). Compila, e imprime acedb.
. A resposta certa (b). Compila, e imprime acefdb, note que no
jogamos a exception, somente a instanciamos.
. A resposta certa (a).
unreachable.

No compila: o System.out do f

. A resposta certa (a). No compila: a palavra throw deveria ter sido


usada para jogar a Exception.
. A resposta certa (c). Compila, e imprime ace e estoura uma
Exception.
. - Exerccios
. A resposta certa (e), StackOverflowError.
. A resposta certa (d). OutOfMemoryError, pois tem um loop innito.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

. - Exerccios
. A resposta certa (e). O mtodo print no possui verso sem argumentos.
. A resposta certa (a). Compila e imprime
ab
cd
e

. A resposta certa (c). Compila e executa normalmente.


. A resposta certa (b). Esta alternativa imprime >12.45 <
. A resposta certa (b). Linhas A e C imprimem abc.
. - Exerccios
. A resposta certa (d). Deixar os mtodos pblicos e atributos privados.
. - Exerccios
. A resposta certa (b). Imprime go!.
. A resposta certa (c). Imprime 10.
. A resposta certa (d). Imprime 11.
. A resposta certa (b). Erro de compilao na linha B.
. A resposta certa (d). Erro de compilao na linha B.
. A resposta certa (a). Imprime x.
. A resposta certa (b). Imprime 5.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

Captulo . Respostas dos Exerccios

. - Exerccios
. A resposta certa (a). As classes so imtaveis.
. A resposta correta (c). Para representar horas sem data usamos
LocalTime.
. A resposta certa (b). A classe que representa a data com hora a
LocalDateTime, e o mtodo para pegar a data corrente now.
. A resposta certa (c).
ChronoUnit.DAYS.between(d1,d2);

. A resposta certa (c).


ChronoUnit.DAYS.between(d1,d2);

. A resposta certa (a).


Period d = Period.between(birthday, today);

. A resposta certa (d).


LocalDateTime.ofInstant(d.toInstant(),
ZoneId.systemDefault()).toLocalDate();

. A

resposta

certa

(e).

No compila.
O mtodo
MonthDay.isSupported no aceita parmetros do tipo
ChronoUnit, apenas ChronoField.

. A resposta certa (d). No compila. No existe um valor


ChronoUnit.YEAR, e sim ChronoUnit.YEARS.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Casa do Cdigo

. - Exerccios
. A resposta certa (a).
p = () -> System.out.println("Hello World");

. A resposta certa (c).


Predicate big = list -> list.size() > 100;

. A resposta certa (d).


Calculator<Integer> divide =
(int a, int b) -> {return (Integer) a / b;}

. A resposta certa (d). Erro de compilao.


. A resposta certa (b). compila em imprime 1.
. A resposta certa (d). No compila por erro na linha A.

E-book gerado especialmente para Luigi Gnova - systemasjava@gmail.com

Вам также может понравиться