English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriais Básicos de Java

Controle de fluxo Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Fila (Queue)

Java Mapa (Map)

Java Conjunto (Set)

Java Entrada e Saída (I/O)

Java Reader/Writer

Outros tópicos do Java

Tipos de Dados Básicos Java

A variável é a solicitação de memória para armazenar valores. Isso significa que, ao criar uma variável, é necessário solicitar espaço na memória.

O sistema de gerenciamento de memória aloca espaço de armazenamento para variáveis com base no tipo, e o espaço alocado pode ser usado apenas para armazenar dados do tipo correspondente.

Portanto, através da definição de variáveis de diferentes tipos, é possível armazenar inteiros, decimais ou caracteres na memória.

Os dois maiores tipos de dados do Java:

  • tipos de dados integrados

  • tipos de dados referenciados

tipos de dados integrados

O Java oferece oito tipos de dados básicos. Seis tipos de números (quatro inteiros, dois ponto flutuantes), um tipo de caractere e um tipo booleano;

byte:

  • O tipo de dados byte é8inteiro, assinado, representado por complemento de dois;

  • O valor mínimo é -128(-2^7);

  • O valor máximo é 127(2^7-1);

  • O valor padrão é 0;

  • O tipo de dados byte é usado para economizar espaço em grandes arrays, principalmente para substituir inteiros, pois o espaço ocupado por uma variável byte é apenas um quarto do tipo int;

  • Exemplo: byte a = 100,byte b = -50。

short:

  •  O tipo de dados short é 16 número inteiro, representado por complemento de dois binário

  •  O valor mínimo é -32768(-2^15);

  •  O valor máximo é 32767(2^15 - 1);

  •  O tipo de dados Short também pode economizar espaço, como o byte. Uma variável short é metade do espaço ocupado por uma variável int;

  •  O valor padrão é 0;

  • Exemplo: short s = 1000, short r = -20000。

int:

  • O tipo de dados int é32número inteiro, representado por complemento de dois binário;

  • O valor mínimo é -2,147,483,648(-2^31);

  • O valor máximo é 2,147,483,647(2^31 - 1);

  • Geralmente, as variáveis inteiiras são do tipo int por padrão;

  • O valor padrão é 0;

  • Exemplo: int a = 100000, int b = -200000。

long:

  • O tipo de dados long é 64 número inteiro, representado por complemento de dois binário;

  • O valor mínimo é -9,223,372,036,854,775,808(-2^63);

  • O valor máximo é 9,223,372,036,854,775,807(2^63 -1);

  • Este tipo é principalmente usado em sistemas que precisam comparar grandes números inteiros;

  • O valor padrão é 0L;

  •  Exemplo: long a = 100000L, Long b = -200000L。
    "L" teoricamente não difere entre maiúsculas e minúsculas, mas se escrito como "l", é fácil confundir-se com o número"1"Confuso, difícil de distinguir. Portanto, é melhor usar maiúsculas.

float:

  • O tipo de dados float é de precisão simples,32bits, conforme o padrão IEEE 754número flutuante padrão;

  • O float pode economizar espaço de memória ao armazenar grandes arrays de números flutuantes;

  •  O valor padrão é 0.0f;

  •  Os números flutuantes não podem ser usados para representar valores exatos, como moeda;

  •  Exemplo: float f1 = 234.5f。

double:

  • O tipo de dados double é de precisão dupla,64 bits, conforme o padrão IEEE 754número flutuante padrão;

  •  O tipo de número flutuante padrão é double;

  •  O tipo de dados double não pode representar valores exatos, como moeda;

  •  O valor padrão é 0.0d;

  •  Exemplo: double d1 = 123.4.

boolean:

  •  O tipo de dados boolean representa uma informação de um bit;

  • Existem apenas dois valores: true e false;

  •  Este tipo é usado apenas como um sinalizador para registrar true/situação falsa;

  •  O valor padrão é false;

  •  Exemplo: boolean one = true。

char:

  •  O tipo de dados char é um único 16 caractere Unicode;

  •   O valor mínimo é \u0000 (ou seja, 0);

  •  O valor máximo é \uffff (ou seja,65,535);

  •  O tipo de dados char pode armazenar qualquer caractere;

  •  Exemplo: char letter = 'A';.

Example

Para o intervalo de valores dos tipos básicos de números, não é necessário memorizar forçosamente, pois seus valores já estão definidos como constantes nas classes de pacote correspondentes. Veja o exemplo a seguir:

public class PrimitiveTypeTest {  
    public static void main(String[] args) {  
        // byte  
        System.out.println("Tipo básico: byte, números de bits binários: ") + Byte.SIZE)  
        System.out.println("Classe de pacote: java.lang.Byte")  
        System.out.println("O valor mínimo: Byte.MIN_VALUE=") + Byte.MIN_VALUE)  
        System.out.println("O valor máximo: Byte.MAX_VALUE=") + Byte.MAX_VALUE)  
        System.out.println();  
  
        // short  
        System.out.println("Tipo básico: short 
Número de bits binários:") + Short.SIZE)  
        System.out.println("Classe de pacote: java.lang.Short")  
        System.out.println("O valor mínimo: Short.MIN_VALUE=") + Short.MIN_VALUE)  
        System.out.println("O valor máximo: Short.MAX_VALUE=") + Short.MAX_VALUE)  
        System.out.println();  
  
        // int  
        System.out.println("Tipo básico: int 
Número de bits binários:") + Integer.SIZE)  
        System.out.println("Classe de pacote: java.lang.Integer")  
        System.out.println("O valor mínimo: Integer.MIN_VALUE=") + Integer.MIN_VALUE)  
        System.out.println("O valor máximo: Integer.MAX_VALUE=") + Integer.MAX_VALUE)  
        System.out.println();  
  
        // long  
        System.out.println("Tipo básico: long 
Número de bits binários:") + Long.SIZE)  
        System.out.println("Classe de pacote: java.lang.Long")  
        System.out.println("O valor mínimo: Long.MIN_VALUE=") + Long.MIN_VALUE)  
        System.out.println("O valor máximo: Long.MAX_VALUE=") + Long.MAX_VALUE)  
        System.out.println();  
  
        // float  
        System.out.println("Tipo básico: float 
Número de bits binários:") + Float.SIZE)  
        System.out.println("Classe de pacote: java.lang.Float")  
        System.out.println("O valor mínimo: Float.MIN_VALUE=") + Float.MIN_VALUE);  
        System.out.println("Valor máximo: Float.MAX_VALUE=") + Float.MAX_VALUE);  
        System.out.println();  
  
        // double  
        System.out.println("Tipo básico: double   Número de bits binários:") + Double.SIZE);  
        System.out.println("Classe de pacote: java.lang.Double");  
        System.out.println("Valor mínimo: Double.MIN_VALUE=") + Double.MIN_VALUE);  
        System.out.println("Valor máximo: Double.MAX_VALUE=") + Double.MAX_VALUE);  
        System.out.println();  
  
        // char  
        System.out.println("Tipo básico: char   Número de bits binários:") + Character.SIZE);  
        System.out.println("Classe de pacote: java.lang.Character");  
        // Emitir Character.MIN_VALUE em forma numérica em vez de caractere para a consola  
        System.out.println("Valor mínimo: Character.MIN_VALUE=")  
                + (int) Character.MIN_VALUE);  
        // Emitir Character.MAX_VALUE em forma numérica em vez de caractere para a consola  
        System.out.println("Valor máximo: Character.MAX_VALUE=")  
                + (int) Character.MAX_VALUE);  
    }  
}

O resultado da compilação do código acima é mostrado a seguir:

Tipo básico: byte   Número de bits binários:8
Classe de pacote: java.lang.Byte
Valor mínimo: Byte.MIN_VALUE=-128
Valor máximo: Byte.MAX_VALUE=127
Tipo básico: short   Número de bits binários:16
Classe de pacote: java.lang.Short
Valor mínimo: Short.MIN_VALUE=-32768
Valor máximo: Short.MAX_VALUE=32767
Tipo básico: int   Número de bits binários:32
Classe de pacote: java.lang.Integer
Valor mínimo: Integer.MIN_VALUE=-2147483648
Valor máximo: Integer.MAX_VALUE=2147483647
Tipo básico: long   Número de bits binários:64
Classe de pacote: java.lang.Long
Mínimo: Long.MIN_VALUE=-9223372036854775808
Máximo: Long.MAX_VALUE=9223372036854775807
Tipo Básico: float Tamanho em Bits:32
Classe de Envoltório: java.lang.Float
Mínimo: Float.MIN_VALUE=1.4E-45
Máximo: Float.MAX_VALUE=3.4028235E38
Tipo Básico: double Tamanho em Bits:64
Classe de Envoltório: java.lang.Double
Mínimo: Double.MIN_VALUE=4.9E-324
Máximo: Double.MAX_VALUE=1.7976931348623157E308
Tipo Básico: char Tamanho em Bits:16
Classe de Envoltório: java.lang.Character
Mínimo: Character.MIN_VALUE=0
Máximo: Character.MAX_VALUE=65535

Os valores mínimos e máximos dos Float e Double são exibidos em forma de notação científica, com o "E" no final+número "E" antes deve ser multiplicado por10quantas vezes? Por exemplo3.14E3é3.14 × 103 =3140,3.14E-3 é 3.14 x 10-3 =0.00314.

Na verdade, o JAVA também possui outro tipo básico void, que também tem sua classe de envoltório java.lang.Void, mas não podemos operá-los diretamente.

Valores Padrão do Tipo

A tabela a seguir lista os valores padrão de todos os tipos do Java:

Tipo de DadosValores Padrão
byte0
short0
int0
long0L
float0.0f
double0.0d
char'u0000'
String (ou qualquer objeto)null
booleanfalse

Exemplo Online

public class Test {
    static boolean bool;
    static byte by;
    static char ch;
    static double d;
    static float f;
    static int i;
    static long l;
    static short sh;
    static String str;
 
    public static void main(String[] args) {
        System.out.println("Bool: ") + bool);
        System.out.println("Byte: ") + by);
        System.out.println("Character: ") + ch);
        System.out.println("Double: ") + d);
        System.out.println("Float: ", + f);
        System.out.println("Integer: ", + i);
        System.out.println("Long: ", + l);
        System.out.println("Short: ", + sh);
        System.out.println("String: ", + str);
    }
}

O resultado da saída do exemplo é:

Bool: false
Byte: 0
Character:
Double: 0.0
Float: 0.0
Integer: 0
Long: 0
Short: 0
String: null

 Tipos de referência

  •  No Java, as variáveis de tipo de referência são muito semelhantes ao C/C++Ponteiro. Tipos de referência apontam para um objeto, e a variável que aponta para o objeto é uma variável de referência. Essas variáveis são especificadas como um tipo específico no momento da declaração, como Employee, Puppy, etc. Uma vez declarada, a tipo não pode ser alterada.

  • Objetos e arrays são tipos de dados de referência.

  •  O valor padrão de todos os tipos de referência é null.

  •  Uma variável de referência pode ser usada para referenciar qualquer tipo compatível.

  •  Exemplo: Site site = new Site("w3codebox")

Constantes Java

As constantes não podem ser modificadas durante a execução do programa.

No Java, o palavra-chave final é usada para modificar constantes, da mesma forma que os variáveis:

final double PI = 3.1415927;

Embora os nomes das constantes também possam ser em minúsculas, geralmente usa-se letras maiúsculas para facilitar a identificação das constantes.

Literals podem ser atribuídos a qualquer tipo embutido. Por exemplo:

byte a = 68;
char a = 'A'

byte, int, long e short podem ser representados em decimal,16e8forma de sistema numérico.

Quando se usa constantes, o prefixo 0 indica 8 Sistemas numéricos, enquanto o prefixo 0x representa 16 Sistemas numéricos, por exemplo:

int decimal = 100;
int octal = 0144;
int hexa = 0x64;

Como em outras linguagens, as constantes de string no Java são sequências de caracteres entre aspas duplas. Abaixo estão exemplos de literals de tipo string:

"Hello World"
"two\nlines"
""This is in quotes""

Constantes de string e constantes de caractere podem conter qualquer caractere Unicode. Por exemplo:

char a = '\u000'1';
String a = "\u0001";

O Java suporta algumas sequências de caracteres de escape especiais.

                        Símbolo                        Significado do caractere
                        \n                        Quebra de linha (0x0a)
                        \r                        Retorno de carro (0x0d)
                        \f                        Página de retorno (0x0c)
                        \b                        Backspace (0x08)
                        \0                        Caractere nulo (0x0)
                        \s                        Espaço (0x20)
                        \t                        Tabulação
                        \"                        Aspas duplas
                        \'                        Aspas simples
                        \\\                        Barra invertida
                        \ddd                        Caracteres octal (ddd)
                        \uxxxx                        16Caracteres Unicode em sistema de numeración (xxxx)

Conversão automática de tipo

Os dados inteiros, reais (constantes) e de caractere podem ser operados em mistura. Durante a operação, os dados de diferentes tipos são convertidos para o mesmo tipo e então operados.

A conversão é de baixo para alto.

Baixo  ------------------------------------>  Alto
byte,short,char—> int —> long—> float—> double

A conversão de tipo de dados deve atender às seguintes regras:

  • 1. Não pode-se realizar conversão de tipo no tipo de dados boolean.

  • 2. Não pode-se converter um tipo de dados de objeto em um objeto de classe não relacionada.

  • 3. Quando se converte um tipo de dados de capacidade maior para um tipo de dados de capacidade menor, deve-se usar conversão de tipo forçada.

  • 4. Durante o processo de conversão, pode ocorrer overflow ou perda de precisão, por exemplo:

    int i =128;   
    byte b = (byte)i;

    porque o tipo byte é 8 bits, o valor máximo é127,portanto, quando o tipo int é forçado a converter para o tipo byte, o valor 128 ocorrerá overflow.

  • 5. A conversão de número decimal para inteiro através da descarte dos dígitos decimais, não arredondando, por exemplo:

    (int)23.7 == 23;        
    (int)-45.89f == -45

Conversão automática de tipo

Deve ser garantido que o número de bits do tipo de dados antes da conversão seja menor que o número de bits do tipo de dados após a conversão, por exemplo: o número de bits do tipo de dados short é16bits,pode ser automaticamente convertido para32do tipo int,de mesmo modo,o número de bits do tipo float é32,pode ser convertida automaticamente para64bits do tipo double.

public class ZiDongLeiZhuan{
        public static void main(String[] args){
            char c1='a';//Defina um tipo char
            int i1 = c1;//Conversão automática do tipo char para int
            System.out.println("O valor igual a após a conversão automática do tipo char para int"+i1);
            char c2 = 'A';//Defina um tipo char
            int i2 = c2+1;//Cálculo do tipo char e int
            System.out.println("O valor calculado do tipo char e int é igual a"+i2);
        }
}

O resultado da execução é:

O valor igual a após a conversão automática do tipo char para int97
O valor calculado do tipo char e int é igual a66

Análise:c1 O valor é um caractere a , the corresponding int type value can be found by looking up the ASCII code table 97, A corresponds to the value 65, so i2=65+1=66.

Type Casting

  • 1. The condition is that the data type to be converted must be compatible.

  • 2. Format: (type)value type is the data type to be cast   Example:

    public class QiangZhiZhuanHuan{
        public static void main(String[] args){
            int i1 = 123;
            byte b = (byte)i1;//Casting to byte
            System.out.println("The value after casting int to byte is equal to"+b);
        }
    }

    Running Result:

    The value after casting int to byte is equal to123

Implicit Type Casting

  • 1. The default type for integers is int.

  • 2. There is no such case for floating-point numbers, because when defining the float type, it is necessary to follow the number with F or f.

This section explains the basic data types of Java. The next section will discuss different variable types and their usage.