I understand that byte b = 20; works , and integer 20 is converted to byte type because it is in range,
Why does byte b = 20L; throws an error here also long literal 20 is in range of byte but it does not does implicit conversion , can you please explain this