System.in.read() is not returning exact value inside static block
<p>As static block is used to initialize static data member in dynamic way, I have this code: </p>

<pre><code>class Temp {
    static int x;

    static {
        try {
            x = System.in.read();
        } catch (Exception e) {
            //Do nothing
        }
    }
}

class Temp1 {
    public static void main(String args[]) {
        System.out.println(Temp.x);
    }
}

class Temp2 {
    public static void main(String args[]) {
        System.out.println(Temp.x);
    }
}
</code></pre>

<p>While running Temp1, Temp2 the normal value of x should be what I entered from keyboard, but I got 49 and 50 always no matter whatever I entered from keyboard.</p>

<p>I already see the read() method of inputstream class it should return the same. Why it is returning 49 and 50 in every case?</p>
