爪哇語中的原始類型

Java 是一種面向對象的語言, 但不完全, 因為並不是所有的東西都是物件. 我們有所謂的原始類型!

Tipos primitivos

觀察

  • 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 雙邊投資條約 (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:

問題 1

COPEVE-UFAL – 2011 – UFALAnalista de TI

Os tipos primitivos de dados do Java são:
a) 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.

答 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.


問題 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, 分別, 作為:
a) short e int
b) int e short
c) int e char
d) String e int
和) int e String

答 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. 最後, 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:

a) Considerando que x é do tipo short e y int, vamos precisar do Casting para não gerar erro, pois short (16 雙邊投資條約) é menor que int (32 雙邊投資條約), IE, short não pode receber int a não ser que seja explicitada a conversão (casting). 因此,, 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 雙邊投資條約, 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.

總點擊數: 9799

2 comentários 講習 “爪哇語中的原始類型

留言

您的電子郵件地址將不會發佈. 與標記必填的欄位 *