Sie sind auf Seite 1von 9

Para todas as perguntas, considerar a verso 6.0 do Java.

1. Escolha a alternativa com uma declarao errada:


a) int i = 32;
b) long j = 32000;
c) float f = 45.0;
d) double d = 45.0;
A resposta correta a letra (c) . Isso porque ao utilizar 45.0 o Java por padro ir deduzir
que o nmero um double (e no um float). Como o double tem uma representao de 64 bits e o
float de 32 bits, colocar float f = 45.0 uma tentativa de armazenar um valor de 64 bits (o nmero
45.0) em uma varivel de 32 bits (float).
Para corrigir o problema utilizamos float f = 45.0F; (essa letra F diz que o 45.0 um float e
no um double).

2. O que acontece quando tentamos compilar e executar o cdigo abaixo ?
public class Test {
static int age;
public static void main (String args []) {
age = age + 1;
System.out.println(T!e age is + age);
"
"
a) Compila, roda e no apresenta nada na sada padro
b) Compila, roda e apresenta na sada padro The age is
c) Compila, roda e apresenta na sada padro The age is 1
d) Compila e d erro de execuo quando tentamos executar.
A resposta correta a letra (c) . Aqui importante saber algumas coisas do Java:
a) quando voc roda essa classe o valor inicial de age 0 (age um atributo)
b) mtodos estticos (no nosso caso o mtodo main) somente podem acessar outros atributos ou
mtodos estticos. Assim, de dentro do main podemos acessar o atributo age porque age esttico
(static).
3. Qual alternativa seguinte a correta ?
a) 128 >>1 d 64
b) 128 >>>1 d 32
c) 128 >>>1 d -32
d) 128 >>1 d -64
O operador de >> faz o deslocamento de para direita em uma posio. Como o 128
representado por 00000000 10000000 (utilizei somente 16 bits no Java, int representado com 32
bits). Um deslocamento para direito de 1 bit faria o seguinte
00000000 10000000 >> 1 00000000 01000000
Ou seja, 64. Uma maneira fcil de fazer isso que o deslocamento de 1 bit para a direita em
binrio divide o nmero por 2. Um deslocamento de 1 bit para a esquerda multiplica por 2. Somente
cuidado com o bit menos significativo (mais a esquerda) e o mais significativo (mais a esquerda).
4. Qual das seguintes alternativas retorna verdadeiro (true) ?
a) John==john
b) john.equals(john)
c) john=john
d) john.equals(new john)
A primeira alternativa no retorna true pois so realmente valores distintos (de endereo). A
segunda alternativa utiliza o mtodo equals para comparar Strings. O mtodo equals sempre
compara o valor da String. Portanto a (b) retorna true.
A alternativa (c) realiza atributio (=) e no comparao (==). A ltima alternativa est
sintaticamente incorreta.
No mais, em Java, as seguintes opes tambm retornariam true:
john == john e "john".equals(new String("john"))
5. Qual das seguintes alternativas correta ?
a) Object o = new Button(A);
b) Frame f = new Panel();
c) Boolean flag = true;
d) Boolean flag = false;
Aqui deve-se conhecer um pouco da linguagem Java. A resposta correta a (a). Mas vamos
inicialmente descartar as outras. Em Java, quando programamos interfaces grficas utilizamos um
classe Frame (ou a JFrame no Swing). Mas a classe Panel no uma Frame, portante a letra b est
incorreta. Em Java existe o tipo primitivo boolean e a classe (Wrapper) Boolean. No entanto, a letra
(c) est errada pois o valor true no deveria estar entre aspas. O correto seria:
Boolean flag = true;
A mesma idia vale para a letra (d). A letra (a) est correta porque em Java TODAS as
classes so filhas (ou netas, ou bisnetas) de Object. Portanto, podemos fazer:
Object o = new Button(A);
Ainda que Button seja uma classe utilizada para criar interfaces grficas (GUI).
6. O que ir acontecer quando compilar e executar o seguinte cdigo ?
class #!itney{
private #!itney(){
System.out.println($ero param #!itney);
"
protected #!itney(int i){
System.out.println(int param #!itney);
"
public #!itney(String s){
System.out.println(String param #!itney);
"
"
public class %nd!ilary{
public static void main(String argv[]){
ne& %nd!ilary().go();
"
public static void go(){
!oe(ne& String(beans));
"
protected void !oe(String s){
System.out.println(s);
"
"
a) Erro de compilao o construtor no pode ser privado.
b) Erro de compilao o mtodo main est declarado de forma incorreta.
c) Erro de compilao por problemas encontrados no mtodo go().
d) Compila, executa e apresenta na sada padro beans
Bom, apesar de termos mtodos chamando mtodos essa no uma questo complicada.
Bem, inicialmente, podemos SIM ter um construtor de uma classe com visibilidade private. Esse 'o
caso da classe Whitney.
Quanto a classe Andhilary o mtodo main cria um objeto da classe Andhilary (new
Andhilary) e chama o mtodo go((). Esse objeto sem nome (new Andhilary() ) chamado de objeto
annimo (por que no fizemos algo como Andhilary Q = new AndHilary())
Assim, outra forma de programar o mtodo main() seria:
public class %nd!ilary{
public static void main(String argv[]){
%nd!ilary ' = ne& %nd!ilary();
'.go();
"
O problema est o mtodo go(). Ele um mtodo estdo (static) Ele at pode ser chamado
por meio de instncias da classe (no nosso caso por meio da instncia annima new Andhilary() ) -
mas o mtodo go() chama o mtodo hoe internamente. O mtodo hoe esttico e no pode ser
chamado pelo mtodo go().
Portanto, a alternativa correta a (c) .
7. O que ir acontecer quando compilar e executar o seguinte cdigo ?
public class (!r{
public static void main(String argv[]){
System.out.print()nteger.parse)nt(1*+1*));
System.out.print()nteger.parse)nt(1*));
System.out.print(S!ort.parseS!ort(1*));
System.out.print(ne& ,oolean(true));
"
"
a) Erro de compilao por ter chamado o mtodo parseInt de maneira incorreta.
b) Erro de compilao, pois o construtor Boolean requer aspas envolta de true.
c) Compila, executa e apresenta na sada 1000000000001010true
d) Compila, executa e apresenta na sada 101010true
A resposta a letra (d). Primeiro importante observar que o cdigo usa print e no println.
O comando
System.out.print(Integer.parseInt("10",10));
converte a String 10 da base 10 (decimal) para interiro - o que resulta em 10. Aqui cabe
uma observao:
Por exemplo:
System.out.print(Integer.parseInt("11",2));
Resulta na converso da String 11 na base 2 (binrio) para interiro. Assim, (11)
2
3,
portanto o resultado da converso 3.
J o comando:
System.out.print(Integer.parseInt("10"));

Converte a String 10 para inteiro. O padro utilizar a base 10. Portanto resulta em 10
novamente.
O terceiro comando:
System.out.print(Short.parseShort("10"));
Converte a String 10 para short (um tipo primitivo em Java um inteiro com um 16 bits).
Portanto, o resultado 10 (obviamente, podemos representar o 10 com 16 bits caso contrrio,
teramos um erro).
Finalmente, o comando:
System.out.print(new Boolean(true));
imprime na tela o objeto Boolean com valor true. O resultado true.
Concatenando as respostas (lembrando que usamos o print e no println) teremos
101010true.
8. O que aconteceu quando tentamos compilar e executar o seguinte cdigo ?
public class %nova{
public static void main(String argv[]){
%nova an = ne& %nova();
an.go();
"
public void go(){
int $=*;
-or(int i=*;i.1*; i+++$++){
System.out.println($);
"
-or(;;){
System.out.println(go);
"
"
"
a) Erro de compilao porque o primeiro lao for est incorreto.
b) Erro de compilao porque o segundo lao for est incorreto.
c) Compila, executa e apresenta na sada padro os nmeros de 0 a 9 seguido pela palavra
go.
d) Compila, executa e apresenta na sada padro os nmeros de 0 a 9 seguido por um
nmero infinito de palavras go.
No h nada de errado nesse cdigo. Portanto, ele compila e executa. Portanto, descartamos
as alternativas (a) e (b). Agora devemos entender a sintaxe do lao
for(;;)
Isso faz um lao INFINITO, pois a condio para dar continuidade no lao (a que se
encontra no meio do for ) no existe e, portanto, considerada TRUE !
Portanto a alternativa correta a letra (d).
9. O que ir acontecer ao tentarmos compilar e executar o seguinte cdigo ?
import /ava.util.0;
public class 1ec2rder{
public static void main(String argv[]){
ne& 1ec2rder();
"
1ec2rder(){
1ector.String3 c!ild = ne& 1ector.String3();
c!ild.add(!arry);
c!ild.add(molly);
c!ild.add(steven);
c!ild.add(!elen);
4ollections.sort(c!ild);
-or(String element 5 c!ild){
System.out.print(element);
"
"
"
a) Erro de compilao por problemas na criao de um objeto da classe Vector.
b) Compila mas d erro de execuo, pois o mtodo Collections.sort pode apenas ordernar
objetos da classe List.
c) Compila, executa a apresenta na tela : HarryMollyStevenHelen
d) Nenhuma das anteriores.
O cdigo principal (main) cria um objeto da classe atual (VecOrder). Portanto, o construtor
da classe chamado. Nesse caso, o construtor cria um Vector de objetos String (Vector<String> )e,
em seguida, adiciona 4 elementos no mesmo. Finalmente, ao chamar Collections.sort(child); o
Vector child ordenado. A ordenao de Strings feita na ordem altabtica, e portanto, o resultado
ser harryhelenmollysteven .
Observar que a alternativa (c) est errada pois as primeiras letras dos nomes esto em
caixa alta. Assim, a resposta correta a letra (d).
10.Considere o seguinte cdigo.
public class )n6berro&{
77 a8ui
"
Quais das alternativas seguintes poderiam ser colocadas de forma correta no lugar do
comentrio // aqui ?
I - public class Ambridge{}
II - private class Ambridge{}
III - static class Ambridge{}
IV - public void class Ambridge{}
a) somente a I
b) somente a I e II
c) somente I, II e III
d) somente I, III e IV
possvel criar classes dentro das prprias classes. - essas classes internas so chamadas de inner
class. Voc pode criar classes internas normalmente com public, protected, private normalmente.
Como a classe interna, ela ainda pode ter o modificador static. Todas as sintaxes da I,II e III esto
corretas. A IV est errada por usar void (que um tipo de retorno utilizado somente para mtodos).
Portanto, a alternativa correta a letra (c) .
11. Qual alternativa a seguir melhor descreve o que um Java Map ?
a) Um vetor para representao geogrficas em 2D
b) Uma classe que contm elementos de vetor nicos
c) Uma classe que contm pares de nmeros nicos
d) Uma interface que garante que as classes que a implementam no podem contem
duplicatas.
Um Map em Java uma INTERFACE que garante que os elementos que a implementam no
tenham elemento repetidos. Ou seja, letra (d).
Ver referncia http://download.oracle.com/javase/1.4.2/docs/api/java/util/Map.html
12.O que acontece se tentarmos executar e compilar o seguinte cdigo ?
public class 9sr{
public static void maim(String argv[]){
9sr d = ne& 9sr();
int :out = 1;;
d.scdig(:out);
System.out.println(:out);
"
public void scdig(int :out){
:out= :out +1*;
:out=:out++;
"
"
a) Erro de compilao porque a vriavel _out comea com _
b) Compila, executa e apresenta na sada padro 19
c) Compila, executa e apresenta na sada padro 29
d) Nenhuma das anteriores.
Aqui devemos ter uma ateno ENORME. O mtodo da classe o maim e no main.
Portanto, essa classe compila sem problemas MAS NO EXECUTA !! Portanto, alternativa (d).
SE EXECUTASSE, o resultado apresentado seria 19. Isso porque o mtodo scdig recebe um
tipo primitivo e tipos primitivos em Java so passados como valor. Isso quer dizer que se houver
qualquer modificao no valor da varivel dentro do mtodo no modifica o valor original (fora do
mtodo).
Os objetos em Java so passados por referncia.
13.Considere o seguinte cdigo. Qual alternativa apresenta um nome de mtodo de acordo com
as convenes do JavaBeans ? O nome no mtodo ser colocado no lugar do comentrio /*
mtodo aqui */.
class (erson{
private int %ge;
70 m<todo a8ui 07
{
return %ge;
"
"
a) private int thisAge()
b) public int thisage()
c) public int getAge()
d) public int setAge()
No caso a implementao do mtodo um return Age (retorna o valor do atributo) e,
portanto, um get. Por conveno o nome ser public int getAge(), ou seja, letra (c). Ainda, vale
ressaltar que se o atributo fosse age (e no Age) o nome do mtodo tambm seria getAge().
14.O que acontece se voc tentar compilar e executar o seguinte cdigo ?
class =y#rapper {
private )nteger i&;
=y#rapper(int i){
i& = ne& )nteger(i);
"
public int get)nt(){
return i&.int1alue();
"
public double get9ouble(){
return i&.double1alue();
"
"
public class Scd{
public static void main(String argv[]){
Scd sc = ne& Scd();
sc.up!ampton(11);
"
public void up!ampton(String s){
int i = )nteger.parse)nt(s);
=y#rapper m& = ne& =y#rapper(i);
System.out.println(m&.get9ouble());

"
"
a) Compila, executa e apresenta na tela o 11.0
b) Compila, executa e apresenta na tela o 11
c) Erro de compilao, a classe MyWrapper est com problemas.
d) Erro de execuo
Apesar da quantidade de cdigo, no h erros aqui. A classe Integer uma classe Wrapper,
ou seja, ela serve para representar o tipo primitivo int na forma de Objetos Java. Com isso, ela
fornece alguns recursos interessantes como por exemplo, retornar o valor inteiro armazenado no
Objeto na forma de double por meio do mtodo doubleValue. Observe o cdigo
public double getDouble(){
return iw.doubleValue();
}
A classe MyWrapper criada apenas utiliza os servios da Integer.
Observando o mtodo main da classe Scd, ele chama o mtodo uphampton passando como
parmetro a String 11. Dentro do mtodo uphampton convertemos a String para inteiro
(Integer.parseInt(s) ) e, em seguida, criamos um objeto MyWrapper e chama o mtodo getDouble().
Esse mtodo chama o doubleValue da classe Integer. Assim, o resultado ser o nmero 11 no
formato double, ou seja, 11.0 . A resposta correta a letra (a).
15. Qual o resultado ao se compilar e rodar o seguinte cdigo ?
public class Test {
static int total = 1*;
public static void main (String args []) {
ne& Test();
"
public Test () {
System.out.println()n test);
System.out.println(t!is);
int temp = t!is.total;
i- (temp 3 >) {
System.out.println(temp);
"
"
"

a) Acontece um erro de compilao
b) Acontece um erro de execuo
c) O valor 10 um dos valores apresentados na sada padro
d) O valor 9 um dos valores apresentados na sada padro
O cdigo principal (main) apenas cria um objeto annimo da classe atual (Test). Portanto o
construtor da classe Test chamado. O cdigo do construtor inicialmente apresenta na tela a String
In test. Em seguida, ao imprimir this, ela ir apresentar na tela o objeto Test criado. Ao fazer isso
o Java ir chamar o mtodo toString() da classe Test, ou seja,
System.out.println(this);
a mesma coisa que
System.out.println(this.toString());
Como a classe Test no possui o mtodo toString(), o mtodo da classe pai chamado, neste
caso, o mtodo toString() da classe Object (que a classe pai de Test) apresenta na tela o nome da
classe seguido de @ seguido do endereo de memria do objeto.
Finalmente, como temp recebe o valor de this.total, o valor de temp ser 10 e o mesmo ser
impresso na tela. Uma POSSVEL sada desse cdigo seria:
In test
Test@19f953d
10
Assim, a resposta correta a letra (c)

Das könnte Ihnen auch gefallen