You can see the difference with a simple program:
public static void main(String[] args) throws InterruptedException, IOException {
int i = -1;
int j = i >> 1;
int k = i >>> 1;
System.out.println("i = " + i + "\t\t<=> " + Integer.toBinaryString(i));
System.out.println("j = " + j + "\t\t<=> " + Integer.toBinaryString(j));
System.out.println("k = " + k + "\t<=> " + Integer.toBinaryString(k));
}
output:
i = -1 <=> 11111111111111111111111111111111
j = -1 <=> 11111111111111111111111111111111
k = 2147483647 <=> 1111111111111111111111111111111