public final long readLong() {
        final long i7 = ab[aboffset++] & 0xff;
        final long i6 = ab[aboffset++] & 0xff;
        final long i5 = ab[aboffset++] & 0xff;
        final long i4 = ab[aboffset++] & 0xff;
        final long i3 = ab[aboffset++] & 0xff;
        final long i2 = ab[aboffset++] & 0xff;
        final long i1 = ab[aboffset++] & 0xff;
        final long i0 = ab[aboffset++] & 0xff;
        return (i7 << 56) + (i6 << 48) + (i5 << 40) + (i4 << 32) + (i3 << 24) + (i2 << 16) + (i1 << 8) + i0;
    }
fast data-reading from a byte-array

@author ab
main/src/main/java/cgeo/geocaching/brouter/util/ByteDataReader.java