Weird java behavior with casts to primitive types
<p>This was probably asked somewhere but I couldn't find it. Could someone clarify why this code compiles and prints out <code>1</code>?</p>

<pre><code>long i = (byte) + (char) - (int) + (long) - 1;
System.out.println(i);
</code></pre>
