Os dados primitivos são 8 (char,boolean,byte,int,short,long,float,double)
Inteiros
Byte = 8 bits
Short = 16 bits
Int = 32 bits
Long = 64 bits
Números Reais
Foat(precisão simples) = 32 bits
Double(precisão dupla) = 64 bits
A diferença entre precisão simples e dupla se restringe ao número de casas decimais apresentada.
Outros Tipos
Char(caracter simples) = 16 bits
Boolean = 1 bit(verdadeiro ou falso)
Um dado do tipo String pertence a uma classe String, deixando de ser um dado primitivo.
Dúvida: Dado Primitivo = Dado Nativo?
Gostaria que vcs, dessem uma olhada na minha resposta e se tiver algo a acrescentar ou corrigir agradeço.
String não é um dado primitivo em Java.
Dados primitivos em Java, são todos aqueles que não derivam de Object. Em java para cada tipo primitivo existe um Wrapper correspondente. Esse wrapper nada mais é que uma forma de encapsular o tipo primitivo em um objeto para promover um dos principais pilares do OO.
Como foi falado pelo colega thingol, ele é tratado de forma especial no Java, ele é imutável.
Isso significa que sempre que você modifica um Objeto do tipo String, a JVM na verdade está criando uma cópia do objeto em si.
Espero ter acrescentado algo à discução, se estiver errado ou imcompleto me corrijam por favor.
Dado nativo, eu tirei do livro que estou lendo.
“Introdução a Programação Orientada a Objetos usando JAVA de Rafael Santos.”
Existe uma frase que diz: “Existem poucos tipos dados nativos em java… que não são parte da linguagem e não são instâncias de outras classe…”
Obs.Estou no início do livro.
Cara java tem algumas maneiras de identificar oque é oque. tipo Toda Classe começa com letra maiuscula, todo metodo começa com letra minuscula, variaveis tbm são como os metodos começando com letra minuscula. Java trata String como objetos e não como tipo primitivos como por exemplo um char, um exemplo disso é que quando você atribui uma String para uma variavel, como por exemplo.
[quote=Daniel Ilha]Os dados primitivos são 8 (char,boolean,byte,int,short,long,float,double)
Inteiros
Byte = 8 bits
Short = 16 bits
Int = 32 bits
Long = 64 bits
Números Reais
Foat(precisão simples) = 32 bits
Double(precisão dupla) = 64 bits
A diferença entre precisão simples e dupla se restringe ao número de casas decimais apresentada.
Outros Tipos
Char(caracter simples) = 16 bits
Boolean = 1 bit(verdadeiro ou falso)
Um dado do tipo String pertence a uma classe String, deixando de ser um dado primitivo.
Dúvida: Dado Primitivo = Dado Nativo?
[/quote]
Boolean é um bit logico, mas é fisiciamente um byte. A menor unidade do java é byte, não bit.
Boolean = 1 byte
byte = 1 byte
short = 2 byte (com sinal)
char = 2 byte (sem sinal)
int = 4 bytes
long = 8 bytes
float = 4 bytes
double = 8 bytes
A diferença entre float e double não é a virgual é o passo. ou seja, a menor distancia entre dois numeros
tipo nativo = aquele que o processador usa
tipo primitivo = aquele que não é um objeto ou composto
tipo de “primeira classe” ( first class citizen) = aquele que sendo primitivo ou não é muito importante e tratado
de forma especial pela linguagem, compilador e runtime.
O java é independente do CPU logo ele não trabalha com tipos nativos. Todos os tipos primitivos são
construidos com tipos nativos pelo JVM mas o java em si não manipula isso.
String é um objeto e portanto não é primitivo. Ele é contudo um tipo especial, ele é um tipo de “primeira classe” ou seja,
ele tem tratamento diferenciado pela espciiifcação, sintaxe e runtime.Array seria um outro tipo que é de "primeira classe’
De primeira classe temos:
java.lang.Object
Arrays
java.lang.String
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
java.lang.Iterable
java.lang.Thread
java.lang.Class
Classes empacotadoras (desde o java 5)
Boa parte das Exceptions e Errors do java.lang.
Se tivesemos que desmembrar um byte e trabalhar com seus bits, como seria o comportamento?
[/quote]
seria o esparado. O ponto é que não existe um tipo de dado “bit”. Se vc quiser trabalhar apenas com um bit utilize boolean ( que embora sendo um byte simula um bit). Ou use um byte, short ou int e utilize apenas o primeiro bit.