Pessoal,
fiz alguns simulados e fiquei com algumas dúvidas, juntei tudo num só tópico, se alguém tiver como me ajudar,muito obrigado.
Voltei a estudar para certificação, e agora é para valer, em3 meses irei fazer a prova, já tenho meu cronograma de estudo e estou sendo fiel.
Primeira dúvida
[code]
class Question {
public static void main(String[]args) {
double d1 = 1.0;
double d2 = 0.0;
byte b = 1;
d1 = d1 / d2;
b = (byte) d1;
System.out.print(b);
}
}
[/code]
( a ) It results in the throwing of an ArithmeticException;
( b ) It results in the throwing of a DivideByZeroException;
( c ) It displays the value 1.5;
( d ) It displays the value -1.
A Resposta para a pergunta é D. Mas não teria erro de conversão? É possível "colocar"um double dentro de um byte? Alguns dados não seriam perdidos? Ou se realmente perdeu, fez com que se torna-se um novo número? :?
Segunda dúvida:
public class TestClass
{
public static void main(String[] args)
{
unsigned byte b = 0;
b++;
System.out.println(b);
}
}
( a ) 0
( b ) -1
( c ) 255
( d ) -128
( e ) It will not compile
A Resposta para a pergunta é E. O que é o unsigned? Fiquei em dúvida ao entender ele.
Terceira dúvida
[code]
int x = 1;
String [] names = { "Fred", "Jim", "Sheila" };
names[--x] += ".";
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
[/code]
( a ) The output includes Fred. with a trailing period.
( b ) The output includes Jim. with a trailing period.
( c ) The output includes Sheila. with a trailing period.
( d ) None of the outputs show a trailing period.
A resposta é A. Eu entendi até como chegar nessa Resposta 8) , mas aproveitando as vezes em fico em dúvida, com é -- ou ++ na frente da variável ou no final dela. Existe alguma regra?
Quarta dúvida
Essa aqui é outro exemplo de -- ou ++, e nessa aqui eu errei quando tava no simulado
[code]
class InitTest {
public static void main(String[] args){
int a = 1;
int b = 1;
a = a++;
a = a++;
a = a++;
b = b++ + + b;
System.out.println(a+ " "+b);
}
}
[/code]
( a ) It will not compile
( b ) It will print 1 3
( c ) It will print 4 2
( d ) It will print 4 3
( e ) It will print 4 4
A resposta é B. Mas Pq? Nessa aqui fiquei bastante confuso :? , principalmente na linha onde tem "b = b++ + + b;"
Quinta dúvida
Essa daqui, me fez quebrar a cabeça e nem imaginava que ia chegar nessa reposta :shock:
int i = 1;
int j = i << 31;
int k = j >> 31;
Ele perguntou o resultado final de K, e eu achava, quando estava fazendo as contas de << e >>, o número volta-se para 1, mas a resposta é -1, pq ?
Sexta dúvida
Essa daqui é outra dúvida chata.
public class Test {
public static void main(String args[]) {
byte x = 3;
x = (byte) ~x;
System.out.println(x);
}
}
Antes de fazer, eu sabia da existência de uma fórmula para calcular o valor de X, é a fórmula -(X+1), assim eu consegui chegar na resposta, que é -4. Mas esquecendo a fórmula, com calcular o valor de x?
Sétima dúvida
[code]
int Output=10;
boolean b1 = false;
if((b1==true) && ((Output+=10)==20)){
System.out.println("We are equal "+Output);
} else {
System.out.println("Not equal! "+Output);
}
[/code]
( a ) Compile error, attempting to perform binary comparison on logical data type
( b ) Compilation and output of "Not equal! 10"
( c ) Compilation and output of "Not equal! 20"
( d ) Compilation and output of "We are equal 10"
A resposta é B.
Aqui eu fiquei bastante perdido, acho que não soube respeitar a ordem para conseguir a resposta correta, como será a ordem? Primeira seta, depois verifica?
Oitava dúvida
[code]
System.out.println(010|4);
[/code]
A questão pedia para imprimir o resultado da linha acima, a resposta é 12, mas porque? sei que 010, é um octal, por causa do 0 a frente.
Bem pessoal, o tópico, realmente está grande, mas preferi, do que ficar dividindo em vários tópicos.
Se alguém tiver como me ajudar, muito Obrigado.