Tipos primitivos em Java

Java é uma linguagem orientada a objetos, mas não totalmente, pois nem tudo é objeto. Temos os chamados Tipos Primitivos!

Tipos primitivos

Observações

  • Strings não são tipos primitivos;
  • Para cada tipo primitivo de dados existe um classe Java correspondente;
  • Inteiros (byte, short, int, long) são, por padrão, int, daí usa-se “l” ou “L” quando quiser denotar long;
  • Para forma decimal, usa-se “0x” em hexadecimal (int quinze = 0xF; // 15 decimal) şi “0” para octal (int x = 0931);
  • Ponto flutuantes (float, double) são, por padrão, double, daí usa-se “f” ou “F” para denotar float;
  • char é representado por caracter Unicode de 16 biţi (sem sinal);
  • Valores booleanos não podem ser usados em uma operação de casting;
  • Casting é uma operação de conversão de um tipo maior para um menor (explícita), Ex: long y = 10L; int x = (int) y;
  • Não é necessário casting de tipos quando do menor para o maior, pois é aceitável (implícita), Ex: int y = 10; long x = y;

Estes conceitos podem ser cobrados da seguinte forma:

Questão 1

COPEVE-UFAL – 2011 – UFALAnalista de TI

Os tipos primitivos de dados do Java são:
The) boolean, char, byte, short, int, long, float, double.
b) boolean, string, int, float, double.
(c)) boolean, string, short, int, long, float, double.
d) boolean, char, int, long, float.
şi) boolean, string, byte, int, long, float.

Resposta 1

Fica claro que todas as alternativas que dizem questringé um tipo primitivo estão erradas. A letra d) está incompleta, astfel încât, nos resta letra a) como correta.


Questão 2

CESGRANRIO – 2008 – TJ-ROAnalista JudiciárioAnálise de Sistemas


Em Java, a atribuição composta x += y é equivalente a x = (T) (x + y), onde T é o tipo de x. Com base nesta premissa, considere as duas linhas de programa a seguir.

x += y;
x = x + y;

A primeira linha compilará, e a segunda linha irá gerar um erro em tempo de compilação, se x e y forem declarados, respectiv, como:
The) short e int
b) int e short
(c)) int e char
d) String e int
şi) int e String

Resposta 2

Essa questão é interessante, pois aborda vários conceitos ditos no enunciado deste Post. Basicamente lembre-se que você somente precisa fazer o Casting (conversão explícita) de um tipo maior para um menor. Outro detalhe está na dica da própria questão, quando diz que x += y é equivalente a x = (T) (x + y). Perceba que nesta situação, o compilador faz o Casting (T), ao contário de apenas declarar x = x + y. E por último, note que a questão quer saber as opções em que a primeira linha compilará, e a segunda linha irá gerar um erro. Então fica assim:

The) Considerando que x é do tipo short e y int, vamos precisar do Casting para não gerar erro, pois short (16 biţi) é menor que int (32 biţi), IE, short não pode receber int a não ser que seja explicitada a conversão (casting). Deci, como x += y é equivalente a x = (T) (x + y), temos que x = (short) (x + y). Veja que o Casting foi feito corretamente e não haverá problema na conversão. Já na segunda linha (x = x + y), não há Casting exigido do maior (int) para o menor (short), o que resultará no erro de compilação. Esta é a alternativa correta, pois fica claro que a primeira linha compilará, e a segunda linha irá gerar um erro.

b) Aqui temos que tanto a primeira linha, quanto a segunda irão compilar sem problemas, pois a conversão é implícita (do menor para o maior independe de casting), já que é int (x) que irá receber short (y) na declaração x = x + y. Não poderia ser esta opção, pois ambas linhas irão compilar.

(c)) Ambas as linhas irão compilar corretamente, pelos mesmos motivos descritos na letra b). Inclusive char também tem 16 biţi, assim como short. A única diferença é que ao executar a soma int + char da declaração x = x + y, será considerado o código ASCII do caractere (char) utilizado. De exemplu, 97 corresponde ao caractere ‘ada tabela ASCII.

d) Ambas as linhas irão compilar corretamente. O motivo aqui é que o compilador considera o sinal de + como concatenação (junção) e não uma soma, convertendo int (y) em string (x), quando executar a declaração x = x + y.

şi) Ambas as linhas não irão compilar, pois não há como converter de string (y) para int (x) quando executar a declaração x = x + y.

Total afisari: 7221

2 Comentarii “Tipos primitivos em Java

lasă un răspuns

Adresa ta de email nu va fi publicat. Câmpurile obligatorii sunt marcate cu *