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) အီး “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 -bits (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), ထွ: 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), ထွ: 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:
တစ်ဦး) 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.
အီး) 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, ထိုကွောငျ့, 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, လိုအပ်သလို, အဖြစ်:
တစ်ဦး) short e int
b) int e short
c) int e char
d) String e int
အီး) 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:

တစ်ဦး) Considerando que x é do tipo short e y int, vamos precisar do Casting para não gerar erro, pois short (16 -bits) é menor que int (32 -bits), အခြားစကား, short não pode receber int a não ser que seja explicitada a conversão (casting). Sendo assim, 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 -bits, 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. ဥပမာအား, 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.

အီး) 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.

စုစုပေါင်း access: 7221

2 ပြန်လည်သုံးသပ်ခြင်း “Tipos primitivos em Java

တစ်ဦးစာပြန်ရန် Leave

သင့်အီးမေးလ်လိပ်စာပုံနှိပ်ထုတ်ဝေမည်မဟုတ်ပါ. တောင်းဆိုနေတဲ့လယ်ယာနှင့်အတူမှတ်သားထားတဲ့ *