Tipo Byte e Data

Como funciona o tipo Byte ?
E como e feita a atribuição de valores para um tipo byte ?
Existe Tipo Data em java ?

Existe duas coisas. O tipo primitivo byte e a classe wrapper byte.

O tipo primitivo byte é um número de -128 até 127.

A classe Byte encapsula um byte. É usada quando o método que você precisa usar aceita um objeto como parâmetro, como é o caso do List, Array e Set, por exemplo.

A classe Byte também contém métodos estáticos úteis, como parseByte e valueOf.

Por exemplo, para transformar um byte primitivo num Byte você faz:
byte b = 50;
Byte b2 = Byte.valueOf(b);

Isso antes do Java 5. O Java 5 implementou um conceito chamado Autoboxing. Ou seja, sempre que você precisar de conversões, ele faz para você assim, em java 5 o código acima ficaria:
byte b = 50;
Byte b2 = b; //Do java 5 em diante, a conversão é automática.

Da mesma forma, você pode fazer:
byte b3 = b2; //Ao invés de byte b3 = b2.byteValue();

Finalmente, é bom lembrar que a classe Byte é imutável. Uma vez criado um Byte com um determinado valor, ele sempre terá aquele valor.

Lembre-se, sempre que você tiver um Byte na mão, você deve comparar dois valores com equals()

Byte b = Byte.valueOf(3);
Byte b2 = Byte.valueOf(3);

b.equals(b2); //Sempre retornará true
b == b2; //Em algumas VMs pode retornar false!

Isso porque você estará comparando referências no segundo caso e, embora contenham valores iguais, podem ser objetos diferentes. Isso não ocorre na VM da sun, que aparentemente tem algum tipo de cache.

Mas não é um comportamento garantido e poderia ser abandonado a qualquer momento pelos projetistas do Java e pode não estar presente numa VM da IBM, por exemplo.

Na verdade, para representar Datas existe o tipo Calendar.

O tipo java.util.Date é usado para representar um instante no tempo. Mas esse instante não é associado a nenhum calendário específico.

O tipo Calendar já define um instante no tempo, associado a um calendário. No nosso caso, é o calendário gregoriano. Por isso você usa a classe GregorianCalendar.

Para obter um calendário com a data aqual faça:
Calendar cal = Calendar.getInstance();

Geralmente, ele vai retornar um GregorianCalendar, a menos que o país do usuário use outro tipo de calendário.

O java também tem a classe java.sql.Date. É usada em bancos de dados. Não confunda com java.util.Date, que é o tal instante no tempo.

não existe uma classe chamada Date que é utilizada para trabalhar com datas e outras como Calendar também utilizada para trabalhar com datas

bravox

Quanto a data ficou claro, para eu enviar datas para o banco devo fazer assim

import java.sql.date;

Date data = new Date();

insert into teste (data) values ('"+data.getDate()+"')

Seria algo assim ?

Porem ainda nâo me ficou claro sobre o byte, pois fiz isso


Byte Status;


if (valor){
  Status = 1; // setei o byte;
}

porem quando passo esta variavel para gravar no banco o mesmo retorn o erro dizendo que o valor inserido era do tipo int .
Como isso se passei um Byte ?
Onde estou errando ?