I am beginner to java... I have tried very much but could not find the way the following line
System.out.println (-1>>>1);
gives 2147483647 ?
Can anyone help me ?

>>> is the bitwise right-shift operator, with 0 sign extension - in other words, all bits "incoming" from the left are filled with 0s.
-1 is represented by 32 bits which are all 1. When you shift that right by 1 bit with 0 sign extension, you end up with a value which has the 31 bottom bits still 1, but 0 for the top bit (the sign bit), so you end up with Integer.MAX_VALUE - which is 2147483647, not 2147483648 as your post states.
Or in JLS terms, from section 15.19:
The value of
n >>>sisnright-shiftedsbit positions with zero-extension, where:If
nis positive, then the result is the same as that ofn >> s.If
nis negative and the type of the left-hand operand is int, then the result is equal to that of the expression(n >> s) + (2 << ~s).If
nis negative and the type of the left-hand operand is long, then the result is equal to that of the expression(n >> s) + (2L << ~s).
This definition ends up being a bit of a pain to work with - it's easier to just work with the "0 sign extension right-shift" explanation, IMO.
See more on this question at Stackoverflow