Java data types: Os principais tipos de dados em Java
A linguagem de programação Java possui oito tipos de dados primitivos e muitos outros tipos de dados complexos. Cada tipo determina quais valores podem ser armazenados e representados dentro de uma variável, garantindo a eficiência, segurança e flexibilidade da aplicação em desenvolvimento. Em Java, todas as variáveis são associadas a tipos de dados específicos.
Tipos de dados em Java
Toda linguagem de programação possui diferentes tipos de dados, que contêm determinados objetos e operações definidas. Muitas vezes, esses tipos de dados são semelhantes, mas também há grandes diferenças entre as opções oferecidas por cada linguagem. Por exemplo, se fizermos uma comparação entre Python e Java, além dos diversos pontos em comum, também poderemos perceber diferenças em muitos aspectos, que tornam cada uma dessas linguagens mais apropriada para certas tarefas. A linguagem Java apresenta dois grupos distintos de tipos de dados: tipos primitivos e tipos complexos (ou “tipos por referência”). Esses tipos de dados em Java têm diferentes tamanhos e determinam quais valores podem ser armazenados em uma variável.
Enquanto os tipos de dados primitivos só podem armazenar valores simples, os tipos por referência são utilizados para criar estruturas mais complexas e organizar e manipular grandes volumes de dados. Se você quer aprender programação, é importante não só conhecer os diversos tipos de dados em Java, mas também saber o melhor modo de empregá-los. As diferenças estão tanto na gama de funções disponíveis, quanto no espaço de memória que você pode poupar usando o tipo certo de dados.
Rápido e escalável, confie na hospedagem da IONOS, que inclui domínio grátis no primeiro ano e endereço de e-mail!
- Domínio
- SSL Wildcard
- Suporte 24 horas
Tipos de dados primitivos em Java
Em Java, existem ao todo oito tipos de dados primitivos, que contêm faixas de valores definidas e inalteráveis. Eles podem ser divididos em quatro categorias: tipos de dados lógicos, tipos de dados inteiros (ou integrais), tipos de dados de vírgula (ou ponto flutuante) e tipos de dados de caracteres. Eles não possuem outras propriedades especiais e também são chamados de “tipos de dados elementares”. Cada tipo de dados tem um número fixo de bits. A seguir, vamos conhecer mais de perto os Java data types primitivos. Esses tipos elementares são os seguintes:
- boolean
- byte
- short
- int ou integer
- long
- float
- double
- char
boolean
Java boolean não é um tipo de dados numérico. Em vez de números, ele tem apenas dois valores possíveis: true (verdadeiro) e false (falso). Portanto, ele é utilizado para determinar se uma condição se aplica (true) ou não se aplica (false). Seu valor-padrão é false e ele pertence à categoria dos tipos de dados lógicos. Ele tem o tamanho de 1 bit e a seguinte sintaxe:
boolean booleanVar;
javabyte
byte é um tipo de dados inteiro e um valor de complemento de dois com tamanho de 8 bits, ou seja, 1 byte. Ele é usado principalmente para poupar memória em matrizes (arrays) maiores. Sua faixa de valores vai de -128 a 127 e seu valor-padrão é 0. Esta é a sintaxe do byte:
byte byteVar;
javashort
short é outro Java data type inteiro, que também é utilizado, sobretudo, para economizar memória em matrizes maiores. O complemento de dois em si tem 16 bits ou 2 bytes de tamanho e sua faixa de valores compreende de -32768 a 32767, incluindo esse último valor. Seu valor-padrão também é 0. Ele é escrito da seguinte forma:
short shortVar;
javaint ou integer
int ou integer também é um valor de complemento de dois e um tipo de dados inteiro, com 4 bytes ou 32 bits de tamanho. Sua faixa de valores inclui números inteiros entre -2147483648 e 2147483647, sendo que o valor-padrão é 0. Assim é a sintaxe do int:
int intVar;
javalong
long é o maior dos Java data types inteiros – tanto em termos da sua faixa de valores, que vai de -9223372036854775808 a 9223372036854775807, quanto do seu tamanho em si: 8 bytes ou 64 bits. Portanto, esse complemento de dois é utilizado quando os outros tipos de dados inteiros não são suficientes. Porém ele é, de longe, o que exige mais espaço em memória. Ele tem o valor-padrão 0 e a sintaxe abaixo:
long longVar;
javafloat
float é um tipo de dados de vírgula (ou ponto) flutuante, utilizado para armazenar números reais. Ele tem 32 bits de tamanho e corresponde ao padrão IEEE 754, que define a representação de números binários e decimais de vírgula flutuante em computadores. O valor-padrão do float é 0,0 e sua faixa de valores pode incluir até sete casas decimais. Entretanto, o float é menos preciso do que o double e, por isso, não deve ser usado para valores em que a precisão é fundamental. Se você não necessita de valores muito exatos, pode optar pelo float para poupar espaço. Sua sintaxe é assim:
float floatVar;
javadouble
O double cumpre uma função semelhante ao float, porém com cerca do dobro da precisão. Ele tem 64 bits de tamanho e pode representar até 16 casas decimais. Seu valor-padrão também é 0,0. Se você pretende trabalhar com valores exatos, sempre vale a pena usar o double, embora mesmo esse tipo de dados não possa oferecer uma exatidão perfeita. Caso sua aplicação exija valores extremamente precisos, é melhor recorrer à classe BigDecimal. Esta é a sintaxe do double:
double doubleVar;
javachar
char é um tipo de dados de caracteres. Ele armazena caracteres com base no conjunto de caracteres Unicode e, assim, possibilita a portabilidade para muitas plataformas diferentes. Cada caractere requer 2 bytes de espaço em memória. Sua faixa de valores corresponde ao código ASCII (Código-Padrão Americano para Intercâmbio de Informações) e situa-se entre “\u0000” (ou seja, 0) e “\uffff” (equivalente a 65535). O valor-padrão do char é “\u0000” e sua sintaxe tem este aspecto:
char charVar;
javaTipos de dados complexos em Java
O segundo grupo de tipos de dados em Java são os chamados tipos complexos, ou tipos por referência. Eles têm esse nome porque se referem a objetos. Ao contrário dos tipos de dados primitivos, eles geralmente não são predefinidos, mas sim especificados pelo programador (uma exceção é o tipo String). Eles são capazes de utilizar métodos e também podem ter o valor 0 (significando “vazio”). Enquanto os tipos de dados primitivos são escritos com inicial minúscula, os tipos por referência têm inicial maiúscula. Abaixo, apresentamos os tipos por referência mais importantes:
Strings
String é uma classe utilizada para representar uma cadeia de caracteres. Isso, entre outros aspectos, distingue esse tipo de dados complexo do tipo primitivo char. A cadeia de caracteres existe como objeto na classe java.lang. Utilizando os diversos métodos da classe String, você pode analisar caracteres individuais na cadeia, comparar strings entre si, bem como pesquisar e copiar strings. Uma string sempre é inscrita entre aspas retas. A sintaxe desse tipo por referência é assim:
<tipo_de_string> <variável_de_string> = "<sequência de caracteres da string>";
javaVejamos um exemplo do funcionamento de strings neste trecho de código:
// Para criar uma string sem um novo operador
String a = "Esta é sua nova string";
// Para criar uma string com um novo operador
String a1 = new String ("Esta é sua nova string");
javaArrays
Arrays (ou matrizes) são utilizadas para armazenar vários valores dentro de uma mesma variável, em vez de criar variáveis diferentes para cada valor individual. Elas são identificadas por colchetes ([]). Já os valores armazenados são inscritos entre chaves ({}) e separados por vírgulas. Esta é a sintaxe de uma array:
tipo_de_dados[] nome_da_array = {valor1, valor2, valor3,…};
javaPara criar uma array com strings, use a estrutura do exemplo abaixo:
String[] cores = {"azul", "vermelho", "amarelo", "roxo"};
javaSe você deseja criar uma array com números inteiros, pode fazer como neste exemplo:
int[] números = {5, 10, 15, 20};
javaClasses
Classes são Java data types que servem como modelo para a criação de objetos. Elas possuem diversos componentes, como o nome da classe, seu modificador e um corpo inscrito entre chaves. Na prática, um exemplo seria assim:
public class Main {
int a = 10;
}
javaInterfaces
Em Java, uma interface é uma classe abstrata. É que ela atua como uma interface, que permite que uma classe acesse diferentes funções. Para que isso seja possível, contudo, a classe precisa, primeiramente, implementar a interface. Interfaces pode conter somente constantes e métodos abstratos. Elas apresentam a seguinte sintaxe:
interface {
métodos abstratos
}
javaPara entender o funcionamento de uma interface, vejamos um exemplo simples:
interface Pizza {
public void ingredientes();
public void preparo();
}
class Funghi implements Pizza {
public void ingredientes() {
System.out.println("Cogumelos, molho de tomate, orégano, mussarela");
}
public void preparo(){
System.out.println("Após 15 minutos no forno, a pizza está pronta");
}
}
class Main {
public static void main(String[] args) {
Funghi myFunghi = new Funghi();
myFunghi.ingredientes();
myFunghi.preparo();
}
}
javaO resultado correspondente, ao utilizar o comando Java System.out.println
, seria este:
Cogumelos, molho de tomate, orégano, mussarela
Após 15 minutos no forno, a pizza está pronta
javaObjetos
Objetos também são Java data types complexos. Eles são instâncias de classes que podem interagir entre si utilizando métodos. No próximo exemplo, criamos vários objetos dentro de uma classe Main:
public class Main {
int a = 10;
public static void main(String[] args) {
Main myObj1 = new Main();
Main myObj2 = new Main();
System.out.println(myObj1.a);
System.out.println(myObj2.a);
}
}
javaEste seria o resultado do código acima:
10
10
javaEnums
Enums são uma classe especial que permite incorporar constantes inalteráveis em um código. Essas variáveis recebem valores fixos, que não podem ser modificados posteriormente. Esse tipo de dados em Java é especialmente útil se você precisa de variáveis com somente alguns estados possíveis. Esta é a sintaxe de um Enum:
enum Nome_da_classe {
VALOR1,
VALOR2,
VALOR3
}
java