Operadores Flashcards
int i = 5;
char c = i;
Não compila
Char não pode receber int sem cast
Uma variável char pode receber um byte?
Não
Uma variável char pode receber um int?
Não
char c = ‘c’;
int i = c;
Ok!
Compila
Quando o cast é obrigatório?
Quando existe a possibilidade de perda de informação.
byte b = 5;
short s = b;
Ok!
Compila
short s = 15;
int i = s;
Ok!
Compila
byte b = 100;
double d = b;
Ok!
Compila
double d = 100;
float f = d;
Não compila sem cast
Qual o resultado da operação abaixo?
float fl = 5/2;
2.0
long l = 10;
float f = l;
Ok!
Compila
double d = 50;
long l = d;
Não compila sem Cast
Quais os tipos aceitos em um switch?
byte short int char String (Aceito desde Java 7)
Não são aceitos:
Long
Double
Float
Quais os tipos não aceitos em um switch?
Não são aceitos:
Long
Double
Float
São aceitos: byte short int char String (Aceito desde Java 7)
final int TWENTY = 20;
…
case TWENTY:
O código compila
final int TWENTY;
TWENTY 20;
…
case TWENTY:
O código não compila
int NUM = 10;
…
case NUM:
Não compila pois a sintaxe case aceita somente constantes.
Deve ser final!
case (1+1):
Ok
Compila pois 1 é uma constante
final int NUM = 20;
case (1+NUM):
Ok
Compila pois 1 e NUM são constantes
O que é promoção numérica?
Em uma operação envolvendo dois tipos diferentes o resultado será sempre o tipo mais amplo.
byte i = 1;
byte j = 1;
byte resultado = i + j;
Não compila pois ocorre a promoção numérica na operação.
O que o continue; faz em um laço for
Pula para a próxima iteração sem concluir a atual.
Qual a diferença entre o break; e o continue; ?
O break para a execução do laço e não executa mais repetições.
O continue para a execução da iteração atual, pulando para a próxima.
Qual exceção lançada em uma divisão por zero?
ArithmeticException
Como fazer uma divisão por zero sem gerar exceção?
Usando um double/float que vai gerar um infinito positivo ou negativo.
System.out.println(i / 0.0); //Imprime “Infinity”
System.out.println(“Mario” > “Guilherme”);
Não compila!
Tipos não primitivos e boolean só aceitam comparadores != e ==.
Como funciona a comparação entre strings?
Se usar o operador == será feita a comparação entre as referências.
Para comparar o conteúdo use o método equals.
Como funciona o pool de strings?
Armazena as strings que tiveram inicialização literal.
As strings que forem inicializadas usando o operador new geram uma nova referência.
O que faz o operador lógico ^
Uma das expressões deve ser verdadeira e a outra falsa.
O que é um operador ternário?
int y = 10;
int x = (y < 10) ? (x=5) : (x=1);
System.out.println(x + “ “ + y);
variável = (condição) ? (Executa se True) : (Executa se False);
O código abaixo compila?
final int k = 10;
byte b = k;
Sim
Caso a variável seja final, o copilador tem a capacidade de conferir se o valor cabe na nova variável.
O código abaixo compila?
final long k = 10;
byte b = k;
Não
Caso a variável seja final, o copilador tem a capacidade de conferir se o valor cabe na nova variável.
Só funciona com byte shot int e char.
Não funciona com long, float e double.
O código abaixo compila?
final float f = 10.0;
byte b = f;
O código não funciona e possui dois erros.
Tentar inicializar um float tem identificar o valor:
final float f = 10.0f; //OK
Fazer um cast final usando float.
Caso a variável seja final, o copilador tem a capacidade de conferir se o valor cabe na nova variável.
Só funciona com byte shot int e char.
Não funciona com long, float e double.
O que faz o método instaceof()?
Compara o tipo de uma variável a uma classe. Verifica se aquela instância é uma instancia de uma classe especifica.
if( tree instanceof Tree )
System.out.println( “Tree” );
Porque o código abaixo não compila?
int option = 4; switch (option){ case 1: System.out.println("1"); default: System.out.println("DEFAULT"); default: System.out.println("DEFAULT2"); }
Pois é permitido somente um default por switch.
Quais tipos Wrappers são aceitos em um switch?
Byte
Short
Integer
Character