Bytes não assinados em Java

Bytes em Java são assinados por padrão. Vejo em outras postagens que uma solução alternativa para ter bytes não assinados é algo semelhante a esse:int num = (int) bite & 0xFF

Alguém poderia me explicar por que isso funciona e converte um byte assinado em um byte não assinado e seu respectivo número inteiro?ANDing um byte com 11111111 resulta no mesmo byte - certo?

questionAnswers(5)

yourAnswerToTheQuestion