Thanks Winston Gutkowski and Campbell Ritchie !!
Actually I am reading Thinking in Java 4th Edition and it is mentioned :-
EnumSets are built on top of longs, a long is 64 bits, and each enum instance requires one bit to indicate presence or absence. This means you can have an EnumSet for an enum of up to 64 elements without going beyond the use of a single long.
/* Output:
[A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45, A46, A47, A48, A49, A50, A51, A52, A53, A54, A55, A56, A57, A58, A59, A60, A61, A62, A63, A64, A65, A66, A67, A68, A69, A70, A71, A72, A73, A74, A75]
*///:~
The EnumSet clearly has no problem with an enum that has more than 64 elements, so we may presume that it adds another long when necessary.
Queries:-
1. Can someone please explain about these 64 bits concept here. Still more than 64 elements can be represented... ???
2. EnumSets are used in place of flags. That statement is also not very clear to me.