с использованием Java NIO's ByteBuffer очень прост:
byte[] bytes = ByteBuffer.allocate(4).putInt(1695609641).array();
for (byte b : bytes) {
System.out.format("0x%x ", b);
}
output:
0x65 0x10 0xf3 0x29
Ваш 2-й пример немного более эффективен, потому что делегат "метода" экземпляр не должен быть получен в закрытии. Я сомневаюсь, что Вы когда-либо замечали бы.
Вы могли бы хотеть читать этот поток на блоге Haacked. Не имели шанса протестировать его, но суть находится в одной из последних строк:
ThreadPool.QueueUserWorkItem(callback => im.Send(to, from, subject, body));