Float vs. Double em Java

Float vs. Double em Java

Você está aprendendo Java atualmente? É uma excelente ideia, mas antes de começarmos a explicar o que são float e double, é importante saber como essa linguagem surgiu, então vamos começar!

Java foi desenvolvido pela Sun Microsystems em 1995, embora tenha começado a ser desenvolvido em 1991 para cartões inteligentes e sintonizadores de TV. Essa linguagem foi idealizada e construída por uma equipe de 13 pessoas liderada por James Gosling, mas não foi porque eles inventaram e bum! Eles já fizeram a linguagem. Não, não, Java é baseado em C++.

E Java sempre foi chamado assim? Bem, não a verdade. Inicialmente chamava-se C++++ mas por questões legais e confusão decidiram chamar-lhe Oak (ou carvalho em português) visto que são fortes (havia um mesmo em frente à janela do escritório do James), mas depois a vida mais uma vez abalou a imaginação e a tranquilidade desta equipa e, finalmente, foi renomeado para Java porque este grupo de programadores frequentava uma cafetaria com esse nome. Que tal?

Você pode imaginar que eles teriam sido processados ​​por copiar o nome de uma cafeteria? Bem, seguindo o tópico, o Java foi lançado publicamente e oficialmente em 1996, incluindo suporte para web com o navegador HotJava.

Então, em 1998, aparecem as primeiras versões do Java. Vamos falar um pouco sobre cada um.


Java Micro Edition (JAVA ME)

Edição focada na criação de aplicativos em dispositivos móveis e embarcados. Antes era voltado para dispositivos com capacidades restritas.

Você pode desenvolver aplicativos para smartphones e TVs, consoles de jogos, controladores de microprocessador e muito mais.


Java Runtime Environment (JRE)

É um conjunto de ferramentas que permitem criar um ambiente onde você pode rodar ou executar seus aplicativos, ou seja, para rodar Java você deve ter um JRE que se adapte à arquitetura e sistema operacional do seu computador.


Java Development KIT (JDK)

Esta é uma extensão do JRE que inclui ferramentas e compiladores para criar programas Java. Ter JRE e JDK é absolutamente necessário para desenvolver um aplicativo Java.


Java Virtual Machine (JVM)

Java é uma linguagem compilada, ou seja, quando compilamos o resultado é um ByteCode, levado pela JVM e traduzido em código de máquina (uns e zeros). Assim, o computador entende e executa.


Java Standard Edition (JAVA SE)

É a edição padrão do Java e original da Sun Microsystems. Podemos criar aplicações web e desktop. Vale ressaltar que possui uma ampla biblioteca de aulas voltadas para segurança, rede, acesso a banco de dados, interfaces gráficas, conexão entre dispositivos e XML entre outros.


Java Enterprise Edition (JAVA EE)

Java maior edição. Ele contém toda a Standard Edition e é usado para criar aplicativos com a arquitetura cliente-servidor.

JAVA EE foi pensado para o mundo dos negócios por ser portátil e escalável. Possui uma grande biblioteca de classes, podendo trabalhar com JSON, e-mail, banco de dados, transações e envio de mensagens.


API de Java (livrarias)

Uma extensa biblioteca de classes que já acompanha a linguagem Java. Você pode consultar a documentação oficial do Java para saber mais sobre seus usos.

Agora que você sabe disso, você vai dizer: "Ok, interessante, mas porque eu preciso saber disso?". Fácil, porque se você não souber como é a arquitetura Java, você não vai entender o que é um Float ou um Double e a diferença de uso deles.

Aqui você verá para onde vai cada detalhe, do macro ao micro. Portanto, precisamos de várias peças para iniciar o lançamento do código e interpretá-lo pelo computador.


O que Goslin queria com a criação do Java?


Que a linguagem era multiplataforma: "escreva uma vez e execute em qualquer lugar" ou WORA (Write it Once, Run Anywhere).

Em poucas palavras, Goslin imaginou uma linguagem independente do sistema operacional com um ambiente de execução chamado JVM (Java Virtual Machine), que interpreta o bytecode para que, quando usarmos o Java, ele possa ser executado no Linux, Windows ou MacIntosh.

Ou seja, buscava a independência da plataforma de execução.

Mas então o que é bytecode?

É uma linguagem intermediária entre o programador e o computador:


Um arquivo Java (JAR) é compilado em uma linguagem 100% não binária ou binária intermediária. O que nós, desenvolvedores, conhecemos é identificado como o bytecode, que é executado e interpretado pela máquina virtual Java, tornando-se ali a linguagem binária, aquela conhecida pela máquina, o hardware.

Lembre-se que a máquina virtual Java que executa o bytecode é específica para cada sistema operacional e isso a torna multiplataforma.

Resumindo, teremos uma máquina virtual para Linux, outra para Windows e outra para Mac.

Agora sim, vamos falar sobre Float e Double


Vamos começar com os tipos de dados em Java:


Observe que existem tipos de dados de objeto Float e Double em maiúsculas, eles têm um uso diferente dos primitivos float e double em minúsculas.

Por que existem esses tipos primitivos e não apenas seus objetos equivalentes?

A razão é a eficiência. Esses tipos básicos são armazenados em uma parte da memória conhecida como stack, que é gerenciada diretamente pelo processador por meio de um registrador de ponteiro (stack pointer). Essa área da memória é rapidamente acessível, mas tem a desvantagem de que o compilador Java deve saber, ao criar o programa, o tamanho e o tempo de vida de todos os dados ali armazenados para poder gerar código que mova o ponteiro da pilha, o que limita a flexibilidade dos programas.

Em vez disso, os objetos são criados em outra área da memória conhecida como Heap, uma área de uso geral que, ao contrário da stack, não exige que o compilador saiba o tamanho ou o tempo de vida dos dados ali armazenados.

Em termos práticos, vamos abordar o que nos interessa como iniciantes em tipos de dados Java: Dados primitivos (aqueles que não possuem métodos, não são objetos e não precisam de uma invocação para serem criados).

  • double: Ocupa 8 bytes (é por isso que dei a você toda a conversa acima, para que você entenda o que isso significa).
  • float: Ocupa 4 bytes.


Então, quando usar qual?


A resposta é... depende. Doubles usam mais memória do que floats. Se for necessária alta precisão nos cálculos, é melhor usar double. Se a precisão não for crítica e você quiser economizar memória e recursos computacionais, poderá usar float.

Mas como eu sei disso? Como faço para decidir antes de um ou outro?

Você deve levar em consideração o quão exato você precisa que seu número seja com decimais em seu projeto. Se você puder arredondar os decimais sem afetar seu projeto, use float. Se você precisar de mais precisão em seus decimais, use double. Em projetos curtos, realmente não importa se você usa double ou float, mas em projetos muito grandes isso lhe daria uma vantagem quando se trata de economizar recursos e memória.

Se você precisa de recursos para apoiá-lo ou entender um pouco mais sobre Java, recomendo que você revise https://www.w3schools.com/java/

Finalmente, o uso de double ou float dependerá do projeto em que você está trabalhando e do volume de dados que você precisa manipular.

Considerando esses dois aspectos, você pode decidir o que precisa. Isso é tudo por hoje. Sucesso!

💡
As opiniões e comentários expressos neste artigo são de propriedade exclusiva de seu autor e não representam necessariamente o ponto de vista da Revelo.

A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.