A linguagem de pro­gra­ma­ção Java possui oito tipos de dados pri­mi­ti­vos e muitos outros tipos de dados complexos. Cada tipo determina quais valores podem ser ar­ma­ze­na­dos e re­pre­sen­ta­dos dentro de uma variável, ga­ran­tindo a efi­ci­ên­cia, segurança e fle­xi­bi­li­dade da aplicação em de­sen­vol­vi­mento. Em Java, todas as variáveis são as­so­ci­a­das a tipos de dados es­pe­cí­fi­cos.

Tipos de dados em Java

Toda linguagem de pro­gra­ma­ção possui di­fe­ren­tes tipos de dados, que contêm de­ter­mi­na­dos objetos e operações definidas. Muitas vezes, esses tipos de dados são se­me­lhan­tes, mas também há grandes di­fe­ren­ças entre as opções ofe­re­ci­das por cada linguagem. Por exemplo, se fizermos uma com­pa­ra­ção entre Python e Java, além dos diversos pontos em comum, também poderemos perceber di­fe­ren­ças em muitos aspectos, que tornam cada uma dessas lin­gua­gens mais apro­pri­ada para certas tarefas. A linguagem Java apresenta dois grupos distintos de tipos de dados: tipos pri­mi­ti­vos e tipos complexos (ou “tipos por re­fe­rên­cia”). Esses tipos de dados em Java têm di­fe­ren­tes tamanhos e de­ter­mi­nam quais valores podem ser ar­ma­ze­na­dos em uma variável.

Enquanto os tipos de dados pri­mi­ti­vos só podem armazenar valores simples, os tipos por re­fe­rên­cia são uti­li­za­dos para criar es­tru­tu­ras mais complexas e organizar e manipular grandes volumes de dados. Se você quer aprender pro­gra­ma­ção, é im­por­tante não só conhecer os diversos tipos de dados em Java, mas também saber o melhor modo de empregá-los. As di­fe­ren­ças estão tanto na gama de funções dis­po­ní­veis, quanto no espaço de memória que você pode poupar usando o tipo certo de dados.

Hos­pe­da­gem que se adapta às suas ambições
  • Fique online com 99,99% de tempo de atividade e segurança robusta
  • Aumente o de­sem­pe­nho com um clique à medida que o tráfego cresce
  • Inclui domínio gratuito, SSL, e-mail e suporte 24 horas por dia, 7 dias por semana

Tipos de dados pri­mi­ti­vos em Java

Em Java, existem ao todo oito tipos de dados pri­mi­ti­vos, que contêm faixas de valores definidas e inal­te­rá­veis. Eles podem ser divididos em quatro ca­te­go­rias: 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 ca­rac­te­res. Eles não possuem outras pro­pri­e­da­des especiais e também são chamados de “tipos de dados ele­men­ta­res”. Cada tipo de dados tem um número fixo de bits. A seguir, vamos conhecer mais de perto os Java data types pri­mi­ti­vos. Esses tipos ele­men­ta­res 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 (ver­da­deiro) e false (falso). Portanto, ele é utilizado para de­ter­mi­nar 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;
java

byte

byte é um tipo de dados inteiro e um valor de com­ple­mento de dois com tamanho de 8 bits, ou seja, 1 byte. Ele é usado prin­ci­pal­mente 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;
java

short

short é outro Java data type inteiro, que também é utilizado, sobretudo, para eco­no­mi­zar memória em matrizes maiores. O com­ple­mento de dois em si tem 16 bits ou 2 bytes de tamanho e sua faixa de valores com­pre­ende de -32768 a 32767, incluindo esse último valor. Seu valor-padrão também é 0. Ele é escrito da seguinte forma:

short shortVar;
java

int ou integer

int ou integer também é um valor de com­ple­mento 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;
java

long

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 com­ple­mento de dois é utilizado quando os outros tipos de dados inteiros não são su­fi­ci­en­tes. 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;
java

float

float é um tipo de dados de vírgula (ou ponto) flutuante, utilizado para armazenar números reais. Ele tem 32 bits de tamanho e cor­res­ponde ao padrão IEEE 754, que define a re­pre­sen­ta­ção de números binários e decimais de vírgula flutuante em com­pu­ta­do­res. O valor-padrão do float é 0,0 e sua faixa de valores pode incluir até sete casas decimais. En­tre­tanto, o float é menos preciso do que o double e, por isso, não deve ser usado para valores em que a precisão é fun­da­men­tal. Se você não necessita de valores muito exatos, pode optar pelo float para poupar espaço. Sua sintaxe é assim:

float floatVar;
java

double

O double cumpre uma função se­me­lhante ao float, porém com cerca do dobro da precisão. Ele tem 64 bits de tamanho e pode re­pre­sen­tar 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 ex­tre­ma­mente precisos, é melhor recorrer à classe Big­De­ci­mal. Esta é a sintaxe do double:

double doubleVar;
java

char

char é um tipo de dados de ca­rac­te­res. Ele armazena ca­rac­te­res com base no conjunto de ca­rac­te­res Unicode e, assim, pos­si­bi­lita a por­ta­bi­li­dade para muitas pla­ta­for­mas di­fe­ren­tes. Cada caractere requer 2 bytes de espaço em memória. Sua faixa de valores cor­res­ponde ao código ASCII (Código-Padrão Americano para In­ter­câm­bio de In­for­ma­ções) e situa-se entre “\u0000” (ou seja, 0) e “\uffff” (equi­va­lente a 65535). O valor-padrão do char é “\u0000” e sua sintaxe tem este aspecto:

char charVar;
java

Tipos de dados complexos em Java

O segundo grupo de tipos de dados em Java são os chamados tipos complexos, ou tipos por re­fe­rên­cia. Eles têm esse nome porque se referem a objetos. Ao contrário dos tipos de dados pri­mi­ti­vos, eles ge­ral­mente não são pre­de­fi­ni­dos, mas sim es­pe­ci­fi­ca­dos pelo pro­gra­ma­dor (uma exceção é o tipo String). Eles são capazes de utilizar métodos e também podem ter o valor 0 (sig­ni­fi­cando “vazio”). Enquanto os tipos de dados pri­mi­ti­vos são escritos com inicial minúscula, os tipos por re­fe­rên­cia têm inicial maiúscula. Abaixo, apre­sen­ta­mos os tipos por re­fe­rên­cia mais im­por­tan­tes:

Strings

String é uma classe utilizada para re­pre­sen­tar uma cadeia de ca­rac­te­res. Isso, entre outros aspectos, distingue esse tipo de dados complexo do tipo primitivo char. A cadeia de ca­rac­te­res existe como objeto na classe java.lang. Uti­li­zando os diversos métodos da classe String, você pode analisar ca­rac­te­res in­di­vi­du­ais na cadeia, comparar strings entre si, bem como pesquisar e copiar strings. Uma string sempre é inscrita entre aspas retas. A sintaxe desse tipo por re­fe­rên­cia é assim:

<tipo_de_string> <variável_de_string> = "<sequência de caracteres da string>";
java

Vejamos um exemplo do fun­ci­o­na­mento 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");
java

Arrays

Arrays (ou matrizes) são uti­li­za­das para armazenar vários valores dentro de uma mesma variável, em vez de criar variáveis di­fe­ren­tes para cada valor in­di­vi­dual. Elas são iden­ti­fi­ca­das por colchetes ([]). Já os valores ar­ma­ze­na­dos 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,…};
java

Para criar uma array com strings, use a estrutura do exemplo abaixo:

String[] cores = {"azul", "vermelho", "amarelo", "roxo"};
java

Se você deseja criar uma array com números inteiros, pode fazer como neste exemplo:

int[] números = {5, 10, 15, 20};
java

Classes

Classes são Java data types que servem como modelo para a criação de objetos. Elas possuem diversos com­po­nen­tes, como o nome da classe, seu mo­di­fi­ca­dor e um corpo inscrito entre chaves. Na prática, um exemplo seria assim:

public class Main {
	int a = 10;
}
java

In­ter­fa­ces

Em Java, uma interface é uma classe abstrata. É que ela atua como uma interface, que permite que uma classe acesse di­fe­ren­tes funções. Para que isso seja possível, contudo, a classe precisa, pri­mei­ra­mente, im­ple­men­tar a interface. In­ter­fa­ces pode conter somente cons­tan­tes e métodos abstratos. Elas apre­sen­tam a seguinte sintaxe:

interface {
	métodos abstratos
}
java

Para entender o fun­ci­o­na­mento 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();
	}
}
java

O resultado cor­res­pon­dente, 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
java

Objetos

Objetos também são Java data types complexos. Eles são ins­tân­cias de classes que podem interagir entre si uti­li­zando 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);
	}
}
java

Este seria o resultado do código acima:

10
10
java

Enums

Enums são uma classe especial que permite in­cor­po­rar cons­tan­tes inal­te­rá­veis em um código. Essas variáveis recebem valores fixos, que não podem ser mo­di­fi­ca­dos pos­te­ri­or­mente. Esse tipo de dados em Java é es­pe­ci­al­mente ú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
Ir para o menu principal