Гарантированно ли -System.nanoTime () + System.nanoTime () будет> = 0?

Привет всем, у меня есть фрагмент кода, который выглядит следующим образом:

public class Test {
    public static void main(String args[]) {
        long a = System.currentTimeMillis(); // line 1
        long b = System.currentTimeMillis(); // line 2
        assert b - a >= 0;

        long y = System.nanoTime(); // line 5
        long z = System.nanoTime(); // line 6
    }
}

Итак IERS заявил, что следующая дополнительная секунда должна произойти сразу после 30 -го июня 2012 г., 11: 59.9.

Мне было интересно, правильно ли я говорю, что если линия 1 запускается через 0,9 секунды после 30 -го июня 2012 г. 11: 59,9 оборотов 1 st июль 2012 г. 00: 00.0 ,

И строка 2 запускается через 0,1 секунды после строки 1,

Результат b - a может быть отрицательным ? (-900 миллисекунд)

Если это так, правда ли, что если строка 5 запускается через 0,9 секунды после 30 -го июня 2012 г. 11: 59,9 оборотов 1 st July 2012 00: 00.0 ,

И строка 6 запускается через 0,1 секунды после строки 5,

Результат z - y может быть ] отрицательный ? (-900000000 наносекунд?)

13
задан Pacerier 14 January 2012 в 01:09
поделиться