why the line Byte b=new Byte("10L"); throwing NumberFormatException.
It is possible to cast long to byte.
then why Byte b=new Byte("10"); is not throwing Exception
You are not casting a long to a byte -- nor casting a int to a byte. You are passing a string to the Byte class to parse to a byte. The "L" character is not supported by the parser called by the Byte class.