getBytes()

Olá pessoal, tudo bom?

É a primeira vez que participo deste fórum. Estou apenas começando
em Java. Espero poder ajudar qdo possível e receber algumas
dicas de vcs.

Bom, eu gostaria de saber a diferença entre o getBytes()
da classe ResultSet e da classe String.

Vamos supor que eu tenha uma coluna do tipo raw(32) no oracle.
Esta coluna tem a seguinte informação:

D0A3C6FE078F0AEC818780170FBCC00000000000000000000000000000000000

Qdo eu uso:

byte[] bVetor = rs.getBytes(“coluna_oracle”);

ele me retorna um vetor de bytes com 32 posições.

mas qdo eu coloco da seguinte maneira, diretamente:

String str = “D0A3C6FE078F0AEC818780170FBCC00000000000000000000000000000000000”;

byte[] bVetor2 = str.getBytes();

ele gerar um vetor de bytes de 64 posições.
Gostaria de saber o porque desta diferença.

Obrigado pela atenção,

Abraço

A codificação padrão de caracter em Java é o UTF-16. Este tipo de codificação usa 2 bytes (16-bits) para representar um caracter. Como você está criando uma String com 32 caracteres, então o tamanho dela em bytes é de 64bytes.