String(char[], int, int) < len = count - offset; > len = count; same for String(byte[], int, int, int) And here are few suggestions String.equals should test for direct equality(==) first. String.hashCode - put str and len into local variables (getfield is expensive, locals are cheap) VMClassLoader.getPrimitiveClass - I think it would be better to pass char here, not String. Why implementor has to write JNI routine with memcmps, if he can do this is simple switch statement ? Artur

